@polyester/sdk 0.21.0 → 0.21.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @polyester/sdk
2
2
 
3
+ ## 0.21.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Preserve `polyesterChainId` and pair quantity scales in reactive catalogs. ([#125](https://github.com/Fabric-Labs/polyester-sdk-typescript/pull/125))
8
+
3
9
  ## 0.21.0
4
10
 
5
11
  ### Minor Changes
@@ -1,26 +1,17 @@
1
- import { AssetConfig, PairConfig, PairMarketDataConfig, PairStatus, SpotConfig } from "../shared/catalog-config.js";
1
+ import { AssetConfig, PairConfig, PairMarketDataConfig, SpotConfig } from "../shared/catalog-config.js";
2
2
  //#region src/catalogs/market-data-catalog.d.ts
3
3
  /**
4
4
  * Enriched pair config where baseAsset/quoteAsset are full AssetConfig objects
5
5
  * instead of just string identifiers.
6
6
  */
7
- interface EnrichedPairConfig {
8
- symbolId: number;
9
- symbol: string;
7
+ interface EnrichedPairConfig extends Omit<PairConfig, "baseAsset" | "quoteAsset" | "listingAt" | "delistingAt" | "baseQuantityScale" | "quoteQuantityScale"> {
8
+ /** Optional only for snapshots created before quantity scales were retained. */
9
+ baseQuantityScale?: PairConfig["baseQuantityScale"];
10
+ quoteQuantityScale?: PairConfig["quoteQuantityScale"];
10
11
  baseAsset: AssetConfig;
11
12
  quoteAsset: AssetConfig;
12
- tickSize: string;
13
- stepSize: string;
14
- minNotionalQuote: string;
15
- minQtyBase: string;
16
- allowBuyFeeFromBase: boolean;
17
- defaultMarketSlippagePctBuy: number;
18
- defaultMarketSlippagePctSell: number;
19
- maxClientRefDriftPct: number;
20
- marketdata?: PairMarketDataConfig;
21
13
  listingAt: number | null;
22
14
  delistingAt: number | null;
23
- status: PairStatus;
24
15
  }
25
16
  interface MarketCatalogData {
26
17
  readonly assets: readonly AssetConfig[];
@@ -1 +1 @@
1
- {"version":3,"file":"market-data-catalog.d.ts","names":[],"sources":["../../src/catalogs/market-data-catalog.ts"],"mappings":";;;;;;UAciB;EACb;EACA;EACA,WAAW;EACX,YAAY;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;EACb;EACA;EACA,QAAQ;;UAGK;WACJ,iBAAiB;WACjB,gBAAgB;WAChB;;KAGD,oBACN;WAEa,iBAAiB;WACjB,iBAAiB,aAAa;WAC9B"}
1
+ {"version":3,"file":"market-data-catalog.d.ts","names":[],"sources":["../../src/catalogs/market-data-catalog.ts"],"mappings":";;;;;;UAQiB,2BAA2B,KACxC;;EASA,oBAAoB;EACpB,qBAAqB;EACrB,WAAW;EACX,YAAY;EACZ;EACA;;UAGa;WACJ,iBAAiB;WACjB,gBAAgB;WAChB;;KAGD,oBACN;WAEa,iBAAiB;WACjB,iBAAiB,aAAa;WAC9B"}
@@ -14,19 +14,9 @@ function enrichMarketPairs(pairs, assets) {
14
14
  const quoteAsset = assetBySymbol.get(pair.quoteAsset);
15
15
  if (!baseAsset || !quoteAsset) throw new Error(`[catalog] market pair ${pair.symbol} references unknown asset: base=${pair.baseAsset}, quote=${pair.quoteAsset}`);
16
16
  enrichedPairs.push({
17
- symbolId: pair.symbolId,
18
- symbol: pair.symbol,
17
+ ...pair,
19
18
  baseAsset,
20
19
  quoteAsset,
21
- tickSize: pair.tickSize,
22
- stepSize: pair.stepSize,
23
- minNotionalQuote: pair.minNotionalQuote,
24
- minQtyBase: pair.minQtyBase,
25
- allowBuyFeeFromBase: pair.allowBuyFeeFromBase,
26
- defaultMarketSlippagePctBuy: pair.defaultMarketSlippagePctBuy,
27
- defaultMarketSlippagePctSell: pair.defaultMarketSlippagePctSell,
28
- maxClientRefDriftPct: pair.maxClientRefDriftPct,
29
- marketdata: pair.marketdata,
30
20
  listingAt: pair.listingAt ?? null,
31
21
  delistingAt: pair.delistingAt ?? null,
32
22
  status: pair.status
@@ -1 +1 @@
1
- {"version":3,"file":"market-data-catalog.js","names":[],"sources":["../../src/catalogs/market-data-catalog.ts"],"sourcesContent":["import type {\n AssetConfig,\n PairConfig,\n PairMarketDataConfig,\n PairStatus,\n SpotConfig,\n} from \"../shared/catalog-config.js\";\n\nexport type { PairMarketDataConfig } from \"../shared/catalog-config.js\";\n\n/**\n * Enriched pair config where baseAsset/quoteAsset are full AssetConfig objects\n * instead of just string identifiers.\n */\nexport interface EnrichedPairConfig {\n symbolId: number;\n symbol: string;\n baseAsset: AssetConfig;\n quoteAsset: AssetConfig;\n tickSize: string;\n stepSize: string;\n minNotionalQuote: string;\n minQtyBase: string;\n allowBuyFeeFromBase: boolean;\n defaultMarketSlippagePctBuy: number;\n defaultMarketSlippagePctSell: number;\n maxClientRefDriftPct: number;\n marketdata?: PairMarketDataConfig;\n listingAt: number | null;\n delistingAt: number | null;\n status: PairStatus;\n}\n\nexport interface MarketCatalogData {\n readonly assets: readonly AssetConfig[];\n readonly pairs: readonly EnrichedPairConfig[];\n readonly tsSec?: number;\n}\n\nexport type MarketCatalogSeed =\n | SpotConfig\n | {\n readonly assets: readonly AssetConfig[];\n readonly pairs: readonly (PairConfig | EnrichedPairConfig)[];\n readonly tsSec?: number;\n };\n\nfunction isEnrichedPair(pair: PairConfig | EnrichedPairConfig): pair is EnrichedPairConfig {\n return typeof pair.baseAsset === \"object\" && typeof pair.quoteAsset === \"object\";\n}\n\nexport function enrichMarketPairs(\n pairs: readonly (PairConfig | EnrichedPairConfig)[],\n assets: readonly AssetConfig[],\n): readonly EnrichedPairConfig[] {\n const assetBySymbol = new Map(assets.map((asset) => [asset.symbol, asset]));\n const enrichedPairs: EnrichedPairConfig[] = [];\n\n for (const pair of pairs) {\n if (isEnrichedPair(pair)) {\n enrichedPairs.push(pair);\n continue;\n }\n\n const baseAsset = assetBySymbol.get(pair.baseAsset);\n const quoteAsset = assetBySymbol.get(pair.quoteAsset);\n if (!baseAsset || !quoteAsset) {\n throw new Error(\n `[catalog] market pair ${pair.symbol} references unknown asset: base=${pair.baseAsset}, quote=${pair.quoteAsset}`,\n );\n }\n\n enrichedPairs.push({\n symbolId: pair.symbolId,\n symbol: pair.symbol,\n baseAsset,\n quoteAsset,\n tickSize: pair.tickSize,\n stepSize: pair.stepSize,\n minNotionalQuote: pair.minNotionalQuote,\n minQtyBase: pair.minQtyBase,\n allowBuyFeeFromBase: pair.allowBuyFeeFromBase,\n defaultMarketSlippagePctBuy: pair.defaultMarketSlippagePctBuy,\n defaultMarketSlippagePctSell: pair.defaultMarketSlippagePctSell,\n maxClientRefDriftPct: pair.maxClientRefDriftPct,\n marketdata: pair.marketdata,\n listingAt: pair.listingAt ?? null,\n delistingAt: pair.delistingAt ?? null,\n status: pair.status,\n });\n }\n\n return enrichedPairs;\n}\n\nexport function buildMarketCatalogData(seed: MarketCatalogSeed): MarketCatalogData {\n const assets = [...seed.assets];\n const pairs = enrichMarketPairs(seed.pairs, assets);\n return Object.freeze({\n assets: Object.freeze(assets),\n pairs: Object.freeze([...pairs]),\n tsSec: seed.tsSec,\n });\n}\n"],"mappings":";AA+CA,SAAS,eAAe,MAAmE;CACvF,OAAO,OAAO,KAAK,cAAc,YAAY,OAAO,KAAK,eAAe;AAC5E;AAEA,SAAgB,kBACZ,OACA,QAC6B;CAC7B,MAAM,gBAAgB,IAAI,IAAI,OAAO,KAAK,UAAU,CAAC,MAAM,QAAQ,KAAK,CAAC,CAAC;CAC1E,MAAM,gBAAsC,CAAC;CAE7C,KAAK,MAAM,QAAQ,OAAO;EACtB,IAAI,eAAe,IAAI,GAAG;GACtB,cAAc,KAAK,IAAI;GACvB;EACJ;EAEA,MAAM,YAAY,cAAc,IAAI,KAAK,SAAS;EAClD,MAAM,aAAa,cAAc,IAAI,KAAK,UAAU;EACpD,IAAI,CAAC,aAAa,CAAC,YACf,MAAM,IAAI,MACN,yBAAyB,KAAK,OAAO,kCAAkC,KAAK,UAAU,UAAU,KAAK,YACzG;EAGJ,cAAc,KAAK;GACf,UAAU,KAAK;GACf,QAAQ,KAAK;GACb;GACA;GACA,UAAU,KAAK;GACf,UAAU,KAAK;GACf,kBAAkB,KAAK;GACvB,YAAY,KAAK;GACjB,qBAAqB,KAAK;GAC1B,6BAA6B,KAAK;GAClC,8BAA8B,KAAK;GACnC,sBAAsB,KAAK;GAC3B,YAAY,KAAK;GACjB,WAAW,KAAK,aAAa;GAC7B,aAAa,KAAK,eAAe;GACjC,QAAQ,KAAK;EACjB,CAAC;CACL;CAEA,OAAO;AACX;AAEA,SAAgB,uBAAuB,MAA4C;CAC/E,MAAM,SAAS,CAAC,GAAG,KAAK,MAAM;CAC9B,MAAM,QAAQ,kBAAkB,KAAK,OAAO,MAAM;CAClD,OAAO,OAAO,OAAO;EACjB,QAAQ,OAAO,OAAO,MAAM;EAC5B,OAAO,OAAO,OAAO,CAAC,GAAG,KAAK,CAAC;EAC/B,OAAO,KAAK;CAChB,CAAC;AACL"}
1
+ {"version":3,"file":"market-data-catalog.js","names":[],"sources":["../../src/catalogs/market-data-catalog.ts"],"sourcesContent":["import type { AssetConfig, PairConfig, SpotConfig } from \"../shared/catalog-config.js\";\n\nexport type { PairMarketDataConfig } from \"../shared/catalog-config.js\";\n\n/**\n * Enriched pair config where baseAsset/quoteAsset are full AssetConfig objects\n * instead of just string identifiers.\n */\nexport interface EnrichedPairConfig extends Omit<\n PairConfig,\n | \"baseAsset\"\n | \"quoteAsset\"\n | \"listingAt\"\n | \"delistingAt\"\n | \"baseQuantityScale\"\n | \"quoteQuantityScale\"\n> {\n /** Optional only for snapshots created before quantity scales were retained. */\n baseQuantityScale?: PairConfig[\"baseQuantityScale\"];\n quoteQuantityScale?: PairConfig[\"quoteQuantityScale\"];\n baseAsset: AssetConfig;\n quoteAsset: AssetConfig;\n listingAt: number | null;\n delistingAt: number | null;\n}\n\nexport interface MarketCatalogData {\n readonly assets: readonly AssetConfig[];\n readonly pairs: readonly EnrichedPairConfig[];\n readonly tsSec?: number;\n}\n\nexport type MarketCatalogSeed =\n | SpotConfig\n | {\n readonly assets: readonly AssetConfig[];\n readonly pairs: readonly (PairConfig | EnrichedPairConfig)[];\n readonly tsSec?: number;\n };\n\nfunction isEnrichedPair(pair: PairConfig | EnrichedPairConfig): pair is EnrichedPairConfig {\n return typeof pair.baseAsset === \"object\" && typeof pair.quoteAsset === \"object\";\n}\n\nexport function enrichMarketPairs(\n pairs: readonly (PairConfig | EnrichedPairConfig)[],\n assets: readonly AssetConfig[],\n): readonly EnrichedPairConfig[] {\n const assetBySymbol = new Map(assets.map((asset) => [asset.symbol, asset]));\n const enrichedPairs: EnrichedPairConfig[] = [];\n\n for (const pair of pairs) {\n if (isEnrichedPair(pair)) {\n enrichedPairs.push(pair);\n continue;\n }\n\n const baseAsset = assetBySymbol.get(pair.baseAsset);\n const quoteAsset = assetBySymbol.get(pair.quoteAsset);\n if (!baseAsset || !quoteAsset) {\n throw new Error(\n `[catalog] market pair ${pair.symbol} references unknown asset: base=${pair.baseAsset}, quote=${pair.quoteAsset}`,\n );\n }\n\n enrichedPairs.push({\n ...pair,\n baseAsset,\n quoteAsset,\n listingAt: pair.listingAt ?? null,\n delistingAt: pair.delistingAt ?? null,\n status: pair.status,\n });\n }\n\n return enrichedPairs;\n}\n\nexport function buildMarketCatalogData(seed: MarketCatalogSeed): MarketCatalogData {\n const assets = [...seed.assets];\n const pairs = enrichMarketPairs(seed.pairs, assets);\n return Object.freeze({\n assets: Object.freeze(assets),\n pairs: Object.freeze([...pairs]),\n tsSec: seed.tsSec,\n });\n}\n"],"mappings":";AAwCA,SAAS,eAAe,MAAmE;CACvF,OAAO,OAAO,KAAK,cAAc,YAAY,OAAO,KAAK,eAAe;AAC5E;AAEA,SAAgB,kBACZ,OACA,QAC6B;CAC7B,MAAM,gBAAgB,IAAI,IAAI,OAAO,KAAK,UAAU,CAAC,MAAM,QAAQ,KAAK,CAAC,CAAC;CAC1E,MAAM,gBAAsC,CAAC;CAE7C,KAAK,MAAM,QAAQ,OAAO;EACtB,IAAI,eAAe,IAAI,GAAG;GACtB,cAAc,KAAK,IAAI;GACvB;EACJ;EAEA,MAAM,YAAY,cAAc,IAAI,KAAK,SAAS;EAClD,MAAM,aAAa,cAAc,IAAI,KAAK,UAAU;EACpD,IAAI,CAAC,aAAa,CAAC,YACf,MAAM,IAAI,MACN,yBAAyB,KAAK,OAAO,kCAAkC,KAAK,UAAU,UAAU,KAAK,YACzG;EAGJ,cAAc,KAAK;GACf,GAAG;GACH;GACA;GACA,WAAW,KAAK,aAAa;GAC7B,aAAa,KAAK,eAAe;GACjC,QAAQ,KAAK;EACjB,CAAC;CACL;CAEA,OAAO;AACX;AAEA,SAAgB,uBAAuB,MAA4C;CAC/E,MAAM,SAAS,CAAC,GAAG,KAAK,MAAM;CAC9B,MAAM,QAAQ,kBAAkB,KAAK,OAAO,MAAM;CAClD,OAAO,OAAO,OAAO;EACjB,QAAQ,OAAO,OAAO,MAAM;EAC5B,OAAO,OAAO,OAAO,CAAC,GAAG,KAAK,CAAC;EAC/B,OAAO,KAAK;CAChB,CAAC;AACL"}
@@ -25,6 +25,8 @@ const EnrichedPairConfigSchema = v.object({
25
25
  defaultMarketSlippagePctBuy: FiniteNumberSchema,
26
26
  defaultMarketSlippagePctSell: FiniteNumberSchema,
27
27
  maxClientRefDriftPct: FiniteNumberSchema,
28
+ baseQuantityScale: v.optional(IntegerSchema),
29
+ quoteQuantityScale: v.optional(IntegerSchema),
28
30
  marketdata: v.optional(PairMarketDataConfigSchema),
29
31
  listingAt: v.nullable(FiniteNumberSchema),
30
32
  delistingAt: v.nullable(FiniteNumberSchema),
@@ -90,6 +92,7 @@ const CatalogSnapshotShapeSchema = v.object({
90
92
  chains: v.array(ZipperChainConfigSchema),
91
93
  assets: v.array(ZipperEnrichedAssetConfigSchema),
92
94
  contracts: v.array(ZipperChainContractConfigSchema),
95
+ polyesterChainId: v.optional(IntegerSchema),
93
96
  tsMs: v.optional(FiniteNumberSchema)
94
97
  })
95
98
  });
@@ -127,6 +130,6 @@ function parseZippedAssetSupplyCatalogUpdates(value) {
127
130
  return result.output;
128
131
  }
129
132
  //#endregion
130
- export { parseCatalogSnapshot, parseZippedAssetSupplyCatalogUpdates };
133
+ export { CatalogSnapshotShapeSchema, parseCatalogSnapshot, parseZippedAssetSupplyCatalogUpdates };
131
134
 
132
135
  //# sourceMappingURL=snapshot-validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot-validation.js","names":[],"sources":["../../src/catalogs/snapshot-validation.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { ValidationError } from \"../shared/errors.js\";\nimport { PAIR_STATUSES } from \"../shared/catalog-config.js\";\nimport type { CatalogSnapshot } from \"./types.js\";\nimport type { ZippedAssetSupplyCatalogUpdate } from \"./zipper-supply.js\";\n\nconst FiniteNumberSchema = v.pipe(v.number(), v.finite());\nconst IntegerSchema = v.pipe(FiniteNumberSchema, v.safeInteger());\n\nconst AssetConfigSchema = v.object({\n symbol: v.string(),\n ledgerId: IntegerSchema,\n name: v.string(),\n quantityDisplayDecimals: IntegerSchema,\n quantityScale: IntegerSchema,\n});\n\nconst PairMarketDataConfigSchema = v.object({\n orderbookPriceBuckets: v.array(FiniteNumberSchema),\n});\n\nconst EnrichedPairConfigSchema = v.object({\n symbolId: IntegerSchema,\n symbol: v.string(),\n baseAsset: AssetConfigSchema,\n quoteAsset: AssetConfigSchema,\n tickSize: v.string(),\n stepSize: v.string(),\n minNotionalQuote: v.string(),\n minQtyBase: v.string(),\n allowBuyFeeFromBase: v.boolean(),\n defaultMarketSlippagePctBuy: FiniteNumberSchema,\n defaultMarketSlippagePctSell: FiniteNumberSchema,\n maxClientRefDriftPct: FiniteNumberSchema,\n marketdata: v.optional(PairMarketDataConfigSchema),\n listingAt: v.nullable(FiniteNumberSchema),\n delistingAt: v.nullable(FiniteNumberSchema),\n status: v.picklist([...PAIR_STATUSES, \"unknown\"]),\n});\n\nconst ZipperChainConfigSchema = v.object({\n chainId: IntegerSchema,\n code: v.string(),\n name: v.string(),\n nativeChainId: v.string(),\n nativeCurrencySymbol: v.string(),\n explorerUrl: v.string(),\n icon: v.string(),\n requiredConfirmations: IntegerSchema,\n confirmationTimeSeconds: IntegerSchema,\n isCaseSensitive: v.boolean(),\n minAddressLength: IntegerSchema,\n maxAddressLength: IntegerSchema,\n});\n\nconst ZipperTokenConfigSchema = v.object({\n address: v.string(),\n decimals: IntegerSchema,\n});\n\nconst ZipperEnrichedAssetChainSchema = v.object({\n ...ZipperChainConfigSchema.entries,\n zippedAssetId: IntegerSchema,\n isNativeAsset: v.boolean(),\n networkFee: v.optional(v.string()),\n networkFeeTsSec: v.optional(FiniteNumberSchema),\n depositMinAmount: v.optional(v.string()),\n withdrawMinAmount: v.optional(v.string()),\n supply: v.optional(v.string()),\n sourceToken: ZipperTokenConfigSchema,\n zToken: ZipperTokenConfigSchema,\n});\n\nconst ZipperEnrichedAssetConfigSchema = v.object({\n asset: v.string(),\n ledgerId: IntegerSchema,\n name: v.string(),\n icon: v.string(),\n quantityScale: IntegerSchema,\n quantityDisplayDecimals: IntegerSchema,\n uAssetId: v.string(),\n chains: v.array(ZipperEnrichedAssetChainSchema),\n});\n\nconst ZipperChainContractConfigSchema = v.object({\n name: v.string(),\n address: v.string(),\n type: v.string(),\n description: v.string(),\n version: IntegerSchema,\n});\n\nconst CatalogSnapshotShapeSchema = v.object({\n source: v.picklist([\"api\", \"snapshot\"]),\n tsMs: FiniteNumberSchema,\n version: IntegerSchema,\n market: v.object({\n assets: v.array(AssetConfigSchema),\n pairs: v.array(EnrichedPairConfigSchema),\n tsSec: v.optional(FiniteNumberSchema),\n }),\n zipper: v.object({\n chains: v.array(ZipperChainConfigSchema),\n assets: v.array(ZipperEnrichedAssetConfigSchema),\n contracts: v.array(ZipperChainContractConfigSchema),\n tsMs: v.optional(FiniteNumberSchema),\n }),\n});\n\nconst ZippedAssetSupplyCatalogUpdatesSchema = v.array(\n v.object({\n zippedAssetId: IntegerSchema,\n supply: v.string(),\n }),\n);\n\nconst parsedSnapshots = new WeakMap<object, CatalogSnapshot>();\n\nfunction hasValidRelationships(\n snapshot: v.InferOutput<typeof CatalogSnapshotShapeSchema>,\n): boolean {\n const assetSymbols = new Set(snapshot.market.assets.map((asset) => asset.symbol));\n if (\n snapshot.market.pairs.some(\n (pair) =>\n !assetSymbols.has(pair.baseAsset.symbol) ||\n !assetSymbols.has(pair.quoteAsset.symbol),\n )\n ) {\n return false;\n }\n\n const chainIds = new Set(snapshot.zipper.chains.map((chain) => chain.chainId));\n return snapshot.zipper.assets.every((asset) =>\n asset.chains.every((chain) => chainIds.has(chain.chainId)),\n );\n}\n\nconst CatalogSnapshotSchema = v.custom<CatalogSnapshot>((value) => {\n const result = v.safeParse(CatalogSnapshotShapeSchema, value);\n return result.success && hasValidRelationships(result.output);\n});\n\n/** Parses and caches untrusted SSR or JavaScript input as a catalog snapshot. */\nexport function parseCatalogSnapshot(value: unknown): CatalogSnapshot {\n if (typeof value !== \"object\" || value === null) {\n throw new ValidationError(\"Catalog snapshot is malformed.\");\n }\n\n const cached = parsedSnapshots.get(value);\n if (cached) return cached;\n\n const result = v.safeParse(CatalogSnapshotSchema, value);\n if (!result.success) {\n throw new ValidationError(\"Catalog snapshot is malformed.\");\n }\n\n const snapshot: CatalogSnapshot = result.output;\n parsedSnapshots.set(value, snapshot);\n parsedSnapshots.set(snapshot, snapshot);\n return snapshot;\n}\n\n/** Parses supply updates before they can advance a snapshot's version or timestamp. */\nexport function parseZippedAssetSupplyCatalogUpdates(\n value: unknown,\n): readonly ZippedAssetSupplyCatalogUpdate[] {\n const result = v.safeParse(ZippedAssetSupplyCatalogUpdatesSchema, value);\n if (!result.success) {\n throw new ValidationError(\"Zipper catalog supply updates are malformed.\");\n }\n return result.output;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"snapshot-validation.js","names":[],"sources":["../../src/catalogs/snapshot-validation.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { ValidationError } from \"../shared/errors.js\";\nimport { PAIR_STATUSES } from \"../shared/catalog-config.js\";\nimport type { CatalogSnapshot } from \"./types.js\";\nimport type { ZippedAssetSupplyCatalogUpdate } from \"./zipper-supply.js\";\n\nconst FiniteNumberSchema = v.pipe(v.number(), v.finite());\nconst IntegerSchema = v.pipe(FiniteNumberSchema, v.safeInteger());\n\nconst AssetConfigSchema = v.object({\n symbol: v.string(),\n ledgerId: IntegerSchema,\n name: v.string(),\n quantityDisplayDecimals: IntegerSchema,\n quantityScale: IntegerSchema,\n});\n\nconst PairMarketDataConfigSchema = v.object({\n orderbookPriceBuckets: v.array(FiniteNumberSchema),\n});\n\nconst EnrichedPairConfigSchema = v.object({\n symbolId: IntegerSchema,\n symbol: v.string(),\n baseAsset: AssetConfigSchema,\n quoteAsset: AssetConfigSchema,\n tickSize: v.string(),\n stepSize: v.string(),\n minNotionalQuote: v.string(),\n minQtyBase: v.string(),\n allowBuyFeeFromBase: v.boolean(),\n defaultMarketSlippagePctBuy: FiniteNumberSchema,\n defaultMarketSlippagePctSell: FiniteNumberSchema,\n maxClientRefDriftPct: FiniteNumberSchema,\n baseQuantityScale: v.optional(IntegerSchema),\n quoteQuantityScale: v.optional(IntegerSchema),\n marketdata: v.optional(PairMarketDataConfigSchema),\n listingAt: v.nullable(FiniteNumberSchema),\n delistingAt: v.nullable(FiniteNumberSchema),\n status: v.picklist([...PAIR_STATUSES, \"unknown\"]),\n});\n\nconst ZipperChainConfigSchema = v.object({\n chainId: IntegerSchema,\n code: v.string(),\n name: v.string(),\n nativeChainId: v.string(),\n nativeCurrencySymbol: v.string(),\n explorerUrl: v.string(),\n icon: v.string(),\n requiredConfirmations: IntegerSchema,\n confirmationTimeSeconds: IntegerSchema,\n isCaseSensitive: v.boolean(),\n minAddressLength: IntegerSchema,\n maxAddressLength: IntegerSchema,\n});\n\nconst ZipperTokenConfigSchema = v.object({\n address: v.string(),\n decimals: IntegerSchema,\n});\n\nconst ZipperEnrichedAssetChainSchema = v.object({\n ...ZipperChainConfigSchema.entries,\n zippedAssetId: IntegerSchema,\n isNativeAsset: v.boolean(),\n networkFee: v.optional(v.string()),\n networkFeeTsSec: v.optional(FiniteNumberSchema),\n depositMinAmount: v.optional(v.string()),\n withdrawMinAmount: v.optional(v.string()),\n supply: v.optional(v.string()),\n sourceToken: ZipperTokenConfigSchema,\n zToken: ZipperTokenConfigSchema,\n});\n\nconst ZipperEnrichedAssetConfigSchema = v.object({\n asset: v.string(),\n ledgerId: IntegerSchema,\n name: v.string(),\n icon: v.string(),\n quantityScale: IntegerSchema,\n quantityDisplayDecimals: IntegerSchema,\n uAssetId: v.string(),\n chains: v.array(ZipperEnrichedAssetChainSchema),\n});\n\nconst ZipperChainContractConfigSchema = v.object({\n name: v.string(),\n address: v.string(),\n type: v.string(),\n description: v.string(),\n version: IntegerSchema,\n});\n\nexport const CatalogSnapshotShapeSchema = v.object({\n source: v.picklist([\"api\", \"snapshot\"]),\n tsMs: FiniteNumberSchema,\n version: IntegerSchema,\n market: v.object({\n assets: v.array(AssetConfigSchema),\n pairs: v.array(EnrichedPairConfigSchema),\n tsSec: v.optional(FiniteNumberSchema),\n }),\n zipper: v.object({\n chains: v.array(ZipperChainConfigSchema),\n assets: v.array(ZipperEnrichedAssetConfigSchema),\n contracts: v.array(ZipperChainContractConfigSchema),\n polyesterChainId: v.optional(IntegerSchema),\n tsMs: v.optional(FiniteNumberSchema),\n }),\n});\n\nconst ZippedAssetSupplyCatalogUpdatesSchema = v.array(\n v.object({\n zippedAssetId: IntegerSchema,\n supply: v.string(),\n }),\n);\n\nconst parsedSnapshots = new WeakMap<object, CatalogSnapshot>();\n\nfunction hasValidRelationships(\n snapshot: v.InferOutput<typeof CatalogSnapshotShapeSchema>,\n): boolean {\n const assetSymbols = new Set(snapshot.market.assets.map((asset) => asset.symbol));\n if (\n snapshot.market.pairs.some(\n (pair) =>\n !assetSymbols.has(pair.baseAsset.symbol) ||\n !assetSymbols.has(pair.quoteAsset.symbol),\n )\n ) {\n return false;\n }\n\n const chainIds = new Set(snapshot.zipper.chains.map((chain) => chain.chainId));\n return snapshot.zipper.assets.every((asset) =>\n asset.chains.every((chain) => chainIds.has(chain.chainId)),\n );\n}\n\nconst CatalogSnapshotSchema = v.custom<CatalogSnapshot>((value) => {\n const result = v.safeParse(CatalogSnapshotShapeSchema, value);\n return result.success && hasValidRelationships(result.output);\n});\n\n/** Parses and caches untrusted SSR or JavaScript input as a catalog snapshot. */\nexport function parseCatalogSnapshot(value: unknown): CatalogSnapshot {\n if (typeof value !== \"object\" || value === null) {\n throw new ValidationError(\"Catalog snapshot is malformed.\");\n }\n\n const cached = parsedSnapshots.get(value);\n if (cached) return cached;\n\n const result = v.safeParse(CatalogSnapshotSchema, value);\n if (!result.success) {\n throw new ValidationError(\"Catalog snapshot is malformed.\");\n }\n\n const snapshot: CatalogSnapshot = result.output;\n parsedSnapshots.set(value, snapshot);\n parsedSnapshots.set(snapshot, snapshot);\n return snapshot;\n}\n\n/** Parses supply updates before they can advance a snapshot's version or timestamp. */\nexport function parseZippedAssetSupplyCatalogUpdates(\n value: unknown,\n): readonly ZippedAssetSupplyCatalogUpdate[] {\n const result = v.safeParse(ZippedAssetSupplyCatalogUpdatesSchema, value);\n if (!result.success) {\n throw new ValidationError(\"Zipper catalog supply updates are malformed.\");\n }\n return result.output;\n}\n"],"mappings":"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"}
@@ -20,12 +20,15 @@ interface ZipperCatalogData {
20
20
  readonly chains: readonly ZipperChainConfig[];
21
21
  readonly assets: readonly ZipperEnrichedAssetConfig[];
22
22
  readonly contracts: readonly ZipperChainContractConfig[];
23
+ /** Absent only in legacy or manually supplied catalog seeds. */
24
+ readonly polyesterChainId?: number;
23
25
  readonly tsMs?: number;
24
26
  }
25
27
  type ZipperCatalogSeed = DepositWithdrawConfig | {
26
28
  readonly chains: readonly ZipperChainConfig[];
27
29
  readonly assets: readonly (ZipperAssetConfig | ZipperEnrichedAssetConfig)[];
28
30
  readonly contracts?: readonly ZipperChainContractConfig[];
31
+ readonly polyesterChainId?: number;
29
32
  readonly tsMs?: number;
30
33
  };
31
34
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"zipper-catalog.d.ts","names":[],"sources":["../../src/catalogs/zipper-catalog.ts"],"mappings":";;;KASY;KAaA,2BAA2B;EACnC,eAAe;EACf,eAAe;EACf,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,oBAAoB;EACpB,SAAS;EACT,aAAa;EACb,QAAQ;;KAGA,4BAA4B,KAAK;EACzC,QAAQ;;UAGK;WACJ,iBAAiB;WACjB,iBAAiB;WACjB,oBAAoB;WACpB;;KAGD,oBACN;WAEa,iBAAiB;WACjB,kBAAkB,oBAAoB;WACtC,qBAAqB;WACrB"}
1
+ {"version":3,"file":"zipper-catalog.d.ts","names":[],"sources":["../../src/catalogs/zipper-catalog.ts"],"mappings":";;;KASY;KAaA,2BAA2B;EACnC,eAAe;EACf,eAAe;EACf,aAAa;EACb,kBAAkB;EAClB,mBAAmB;EACnB,oBAAoB;EACpB,SAAS;EACT,aAAa;EACb,QAAQ;;KAGA,4BAA4B,KAAK;EACzC,QAAQ;;UAGK;WACJ,iBAAiB;WACjB,iBAAiB;WACjB,oBAAoB;;WAEpB;WACA;;KAGD,oBACN;WAEa,iBAAiB;WACjB,kBAAkB,oBAAoB;WACtC,qBAAqB;WACrB;WACA"}
@@ -20,15 +20,7 @@ function enrichZipperAssets(assets, chains) {
20
20
  if (!chain) throw new Error(`[catalog] zipper asset ${asset.asset} references unknown chainId: ${variant.chainId}`);
21
21
  enrichedChains.push({
22
22
  ...chain,
23
- zippedAssetId: variant.zippedAssetId,
24
- isNativeAsset: variant.isNativeAsset,
25
- networkFee: variant.networkFee,
26
- networkFeeTsSec: variant.networkFeeTsSec,
27
- depositMinAmount: variant.depositMinAmount,
28
- withdrawMinAmount: variant.withdrawMinAmount,
29
- supply: variant.supply,
30
- sourceToken: variant.sourceToken,
31
- zToken: variant.zToken
23
+ ...variant
32
24
  });
33
25
  }
34
26
  enrichedAssets.push({
@@ -45,6 +37,7 @@ function buildZipperCatalogData(seed) {
45
37
  chains: Object.freeze(chains),
46
38
  assets: Object.freeze([...assets]),
47
39
  contracts: Object.freeze([...seed.contracts ?? []]),
40
+ polyesterChainId: seed.polyesterChainId,
48
41
  tsMs: seed.tsMs
49
42
  });
50
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zipper-catalog.js","names":[],"sources":["../../src/catalogs/zipper-catalog.ts"],"sourcesContent":["import type {\n DepositWithdrawConfig,\n ZipperAssetChainVariant,\n ZipperAssetConfig,\n ZipperChainConfig,\n ZipperChainContractConfig,\n} from \"../shared/catalog-config.js\";\n\n/** Known stable contract names plus a string escape hatch for new contracts. */\nexport type ZipperContractName =\n | \"fundingAccount\"\n | \"guardRegistry\"\n | \"tradingGateway\"\n | (string & {});\n\nexport type {\n DepositWithdrawConfig,\n ZipperAssetConfig,\n ZipperChainConfig,\n ZipperChainContractConfig,\n};\n\nexport type ZipperEnrichedAssetChain = ZipperChainConfig & {\n zippedAssetId: ZipperAssetChainVariant[\"zippedAssetId\"];\n isNativeAsset: ZipperAssetChainVariant[\"isNativeAsset\"];\n networkFee?: ZipperAssetChainVariant[\"networkFee\"];\n networkFeeTsSec?: ZipperAssetChainVariant[\"networkFeeTsSec\"];\n depositMinAmount?: ZipperAssetChainVariant[\"depositMinAmount\"];\n withdrawMinAmount?: ZipperAssetChainVariant[\"withdrawMinAmount\"];\n supply?: ZipperAssetChainVariant[\"supply\"];\n sourceToken: ZipperAssetChainVariant[\"sourceToken\"];\n zToken: ZipperAssetChainVariant[\"zToken\"];\n};\n\nexport type ZipperEnrichedAssetConfig = Omit<ZipperAssetConfig, \"variants\"> & {\n chains: ZipperEnrichedAssetChain[];\n};\n\nexport interface ZipperCatalogData {\n readonly chains: readonly ZipperChainConfig[];\n readonly assets: readonly ZipperEnrichedAssetConfig[];\n readonly contracts: readonly ZipperChainContractConfig[];\n readonly tsMs?: number;\n}\n\nexport type ZipperCatalogSeed =\n | DepositWithdrawConfig\n | {\n readonly chains: readonly ZipperChainConfig[];\n readonly assets: readonly (ZipperAssetConfig | ZipperEnrichedAssetConfig)[];\n readonly contracts?: readonly ZipperChainContractConfig[];\n readonly tsMs?: number;\n };\n\nfunction isEnrichedZipperAsset(\n asset: ZipperAssetConfig | ZipperEnrichedAssetConfig,\n): asset is ZipperEnrichedAssetConfig {\n return \"chains\" in asset;\n}\n\n/**\n * Adds derived display metadata to Zipper asset records.\n */\nexport function enrichZipperAssets(\n assets: readonly (ZipperAssetConfig | ZipperEnrichedAssetConfig)[],\n chains: readonly ZipperChainConfig[],\n): readonly ZipperEnrichedAssetConfig[] {\n const chainById = new Map(chains.map((chain) => [chain.chainId, chain]));\n const enrichedAssets: ZipperEnrichedAssetConfig[] = [];\n\n for (const asset of assets) {\n if (isEnrichedZipperAsset(asset)) {\n enrichedAssets.push(asset);\n continue;\n }\n\n const { variants, ...rest } = asset;\n const enrichedChains: ZipperEnrichedAssetChain[] = [];\n\n for (const variant of variants) {\n const chain = chainById.get(variant.chainId);\n if (!chain) {\n throw new Error(\n `[catalog] zipper asset ${asset.asset} references unknown chainId: ${variant.chainId}`,\n );\n }\n\n enrichedChains.push({\n ...chain,\n zippedAssetId: variant.zippedAssetId,\n isNativeAsset: variant.isNativeAsset,\n networkFee: variant.networkFee,\n networkFeeTsSec: variant.networkFeeTsSec,\n depositMinAmount: variant.depositMinAmount,\n withdrawMinAmount: variant.withdrawMinAmount,\n supply: variant.supply,\n sourceToken: variant.sourceToken,\n zToken: variant.zToken,\n });\n }\n\n enrichedAssets.push({\n ...rest,\n chains: enrichedChains,\n });\n }\n\n return enrichedAssets;\n}\n\nexport function buildZipperCatalogData(seed: ZipperCatalogSeed): ZipperCatalogData {\n const chains = [...seed.chains];\n const assets = enrichZipperAssets(seed.assets, chains);\n return Object.freeze({\n chains: Object.freeze(chains),\n assets: Object.freeze([...assets]),\n contracts: Object.freeze([...(seed.contracts ?? [])]),\n tsMs: seed.tsMs,\n });\n}\n"],"mappings":";AAsDA,SAAS,sBACL,OACkC;CAClC,OAAO,YAAY;AACvB;;;;AAKA,SAAgB,mBACZ,QACA,QACoC;CACpC,MAAM,YAAY,IAAI,IAAI,OAAO,KAAK,UAAU,CAAC,MAAM,SAAS,KAAK,CAAC,CAAC;CACvE,MAAM,iBAA8C,CAAC;CAErD,KAAK,MAAM,SAAS,QAAQ;EACxB,IAAI,sBAAsB,KAAK,GAAG;GAC9B,eAAe,KAAK,KAAK;GACzB;EACJ;EAEA,MAAM,EAAE,UAAU,GAAG,SAAS;EAC9B,MAAM,iBAA6C,CAAC;EAEpD,KAAK,MAAM,WAAW,UAAU;GAC5B,MAAM,QAAQ,UAAU,IAAI,QAAQ,OAAO;GAC3C,IAAI,CAAC,OACD,MAAM,IAAI,MACN,0BAA0B,MAAM,MAAM,+BAA+B,QAAQ,SACjF;GAGJ,eAAe,KAAK;IAChB,GAAG;IACH,eAAe,QAAQ;IACvB,eAAe,QAAQ;IACvB,YAAY,QAAQ;IACpB,iBAAiB,QAAQ;IACzB,kBAAkB,QAAQ;IAC1B,mBAAmB,QAAQ;IAC3B,QAAQ,QAAQ;IAChB,aAAa,QAAQ;IACrB,QAAQ,QAAQ;GACpB,CAAC;EACL;EAEA,eAAe,KAAK;GAChB,GAAG;GACH,QAAQ;EACZ,CAAC;CACL;CAEA,OAAO;AACX;AAEA,SAAgB,uBAAuB,MAA4C;CAC/E,MAAM,SAAS,CAAC,GAAG,KAAK,MAAM;CAC9B,MAAM,SAAS,mBAAmB,KAAK,QAAQ,MAAM;CACrD,OAAO,OAAO,OAAO;EACjB,QAAQ,OAAO,OAAO,MAAM;EAC5B,QAAQ,OAAO,OAAO,CAAC,GAAG,MAAM,CAAC;EACjC,WAAW,OAAO,OAAO,CAAC,GAAI,KAAK,aAAa,CAAC,CAAE,CAAC;EACpD,MAAM,KAAK;CACf,CAAC;AACL"}
1
+ {"version":3,"file":"zipper-catalog.js","names":[],"sources":["../../src/catalogs/zipper-catalog.ts"],"sourcesContent":["import type {\n DepositWithdrawConfig,\n ZipperAssetChainVariant,\n ZipperAssetConfig,\n ZipperChainConfig,\n ZipperChainContractConfig,\n} from \"../shared/catalog-config.js\";\n\n/** Known stable contract names plus a string escape hatch for new contracts. */\nexport type ZipperContractName =\n | \"fundingAccount\"\n | \"guardRegistry\"\n | \"tradingGateway\"\n | (string & {});\n\nexport type {\n DepositWithdrawConfig,\n ZipperAssetConfig,\n ZipperChainConfig,\n ZipperChainContractConfig,\n};\n\nexport type ZipperEnrichedAssetChain = ZipperChainConfig & {\n zippedAssetId: ZipperAssetChainVariant[\"zippedAssetId\"];\n isNativeAsset: ZipperAssetChainVariant[\"isNativeAsset\"];\n networkFee?: ZipperAssetChainVariant[\"networkFee\"];\n networkFeeTsSec?: ZipperAssetChainVariant[\"networkFeeTsSec\"];\n depositMinAmount?: ZipperAssetChainVariant[\"depositMinAmount\"];\n withdrawMinAmount?: ZipperAssetChainVariant[\"withdrawMinAmount\"];\n supply?: ZipperAssetChainVariant[\"supply\"];\n sourceToken: ZipperAssetChainVariant[\"sourceToken\"];\n zToken: ZipperAssetChainVariant[\"zToken\"];\n};\n\nexport type ZipperEnrichedAssetConfig = Omit<ZipperAssetConfig, \"variants\"> & {\n chains: ZipperEnrichedAssetChain[];\n};\n\nexport interface ZipperCatalogData {\n readonly chains: readonly ZipperChainConfig[];\n readonly assets: readonly ZipperEnrichedAssetConfig[];\n readonly contracts: readonly ZipperChainContractConfig[];\n /** Absent only in legacy or manually supplied catalog seeds. */\n readonly polyesterChainId?: number;\n readonly tsMs?: number;\n}\n\nexport type ZipperCatalogSeed =\n | DepositWithdrawConfig\n | {\n readonly chains: readonly ZipperChainConfig[];\n readonly assets: readonly (ZipperAssetConfig | ZipperEnrichedAssetConfig)[];\n readonly contracts?: readonly ZipperChainContractConfig[];\n readonly polyesterChainId?: number;\n readonly tsMs?: number;\n };\n\nfunction isEnrichedZipperAsset(\n asset: ZipperAssetConfig | ZipperEnrichedAssetConfig,\n): asset is ZipperEnrichedAssetConfig {\n return \"chains\" in asset;\n}\n\n/**\n * Adds derived display metadata to Zipper asset records.\n */\nexport function enrichZipperAssets(\n assets: readonly (ZipperAssetConfig | ZipperEnrichedAssetConfig)[],\n chains: readonly ZipperChainConfig[],\n): readonly ZipperEnrichedAssetConfig[] {\n const chainById = new Map(chains.map((chain) => [chain.chainId, chain]));\n const enrichedAssets: ZipperEnrichedAssetConfig[] = [];\n\n for (const asset of assets) {\n if (isEnrichedZipperAsset(asset)) {\n enrichedAssets.push(asset);\n continue;\n }\n\n const { variants, ...rest } = asset;\n const enrichedChains: ZipperEnrichedAssetChain[] = [];\n\n for (const variant of variants) {\n const chain = chainById.get(variant.chainId);\n if (!chain) {\n throw new Error(\n `[catalog] zipper asset ${asset.asset} references unknown chainId: ${variant.chainId}`,\n );\n }\n\n enrichedChains.push({\n ...chain,\n ...variant,\n });\n }\n\n enrichedAssets.push({\n ...rest,\n chains: enrichedChains,\n });\n }\n\n return enrichedAssets;\n}\n\nexport function buildZipperCatalogData(seed: ZipperCatalogSeed): ZipperCatalogData {\n const chains = [...seed.chains];\n const assets = enrichZipperAssets(seed.assets, chains);\n return Object.freeze({\n chains: Object.freeze(chains),\n assets: Object.freeze([...assets]),\n contracts: Object.freeze([...(seed.contracts ?? [])]),\n polyesterChainId: seed.polyesterChainId,\n tsMs: seed.tsMs,\n });\n}\n"],"mappings":";AAyDA,SAAS,sBACL,OACkC;CAClC,OAAO,YAAY;AACvB;;;;AAKA,SAAgB,mBACZ,QACA,QACoC;CACpC,MAAM,YAAY,IAAI,IAAI,OAAO,KAAK,UAAU,CAAC,MAAM,SAAS,KAAK,CAAC,CAAC;CACvE,MAAM,iBAA8C,CAAC;CAErD,KAAK,MAAM,SAAS,QAAQ;EACxB,IAAI,sBAAsB,KAAK,GAAG;GAC9B,eAAe,KAAK,KAAK;GACzB;EACJ;EAEA,MAAM,EAAE,UAAU,GAAG,SAAS;EAC9B,MAAM,iBAA6C,CAAC;EAEpD,KAAK,MAAM,WAAW,UAAU;GAC5B,MAAM,QAAQ,UAAU,IAAI,QAAQ,OAAO;GAC3C,IAAI,CAAC,OACD,MAAM,IAAI,MACN,0BAA0B,MAAM,MAAM,+BAA+B,QAAQ,SACjF;GAGJ,eAAe,KAAK;IAChB,GAAG;IACH,GAAG;GACP,CAAC;EACL;EAEA,eAAe,KAAK;GAChB,GAAG;GACH,QAAQ;EACZ,CAAC;CACL;CAEA,OAAO;AACX;AAEA,SAAgB,uBAAuB,MAA4C;CAC/E,MAAM,SAAS,CAAC,GAAG,KAAK,MAAM;CAC9B,MAAM,SAAS,mBAAmB,KAAK,QAAQ,MAAM;CACrD,OAAO,OAAO,OAAO;EACjB,QAAQ,OAAO,OAAO,MAAM;EAC5B,QAAQ,OAAO,OAAO,CAAC,GAAG,MAAM,CAAC;EACjC,WAAW,OAAO,OAAO,CAAC,GAAI,KAAK,aAAa,CAAC,CAAE,CAAC;EACpD,kBAAkB,KAAK;EACvB,MAAM,KAAK;CACf,CAAC;AACL"}
@@ -11,7 +11,7 @@ type TimestampInit = {
11
11
  };
12
12
  declare function createCandleRowSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
13
13
  readonly symbolId: v.NumberSchema<undefined>;
14
- readonly timeframe: v.SchemaWithPipe<readonly [v.EnumSchema<typeof Timeframe$1, undefined>, v.TransformAction<Timeframe$1, DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">>]>;
14
+ readonly timeframe: v.SchemaWithPipe<readonly [v.EnumSchema<typeof Timeframe$1, undefined>, v.TransformAction<Timeframe$1, DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">>]>;
15
15
  readonly tsSec: v.BigintSchema<undefined>;
16
16
  readonly open: v.BigintSchema<undefined>;
17
17
  readonly high: v.BigintSchema<undefined>;
@@ -22,7 +22,7 @@ declare function createCandleRowSchema(scales: SdkScales): v.SchemaWithPipe<read
22
22
  readonly isClosed: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
23
23
  }, undefined>, v.TransformAction<{
24
24
  symbolId: number;
25
- timeframe: DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">;
25
+ timeframe: DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">;
26
26
  tsSec: bigint;
27
27
  open: bigint;
28
28
  high: bigint;
@@ -33,7 +33,7 @@ declare function createCandleRowSchema(scales: SdkScales): v.SchemaWithPipe<read
33
33
  isClosed: boolean;
34
34
  }, {
35
35
  symbolId: number;
36
- timeframe: DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">;
36
+ timeframe: DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">;
37
37
  time: number;
38
38
  open: string;
39
39
  high: string;
@@ -46,7 +46,7 @@ declare function createCandleRowSchema(scales: SdkScales): v.SchemaWithPipe<read
46
46
  declare const createCandleRowIntSchema: typeof createCandleRowSchema;
47
47
  declare function createCandleColumnarSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
48
48
  readonly symbolId: v.NumberSchema<undefined>;
49
- readonly timeframe: v.SchemaWithPipe<readonly [v.EnumSchema<typeof Timeframe$1, undefined>, v.TransformAction<Timeframe$1, DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">>]>;
49
+ readonly timeframe: v.SchemaWithPipe<readonly [v.EnumSchema<typeof Timeframe$1, undefined>, v.TransformAction<Timeframe$1, DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">>]>;
50
50
  readonly tsSec: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
51
51
  readonly open: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
52
52
  readonly high: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
@@ -63,7 +63,7 @@ declare function createCandleColumnarSchema(scales: SdkScales): v.SchemaWithPipe
63
63
  readonly nextPageToken: v.OptionalSchema<v.StringSchema<undefined>, "">;
64
64
  }, undefined>, v.TransformAction<{
65
65
  symbolId: number;
66
- timeframe: DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">;
66
+ timeframe: DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">;
67
67
  tsSec: bigint[];
68
68
  open: bigint[];
69
69
  high: bigint[];
@@ -80,7 +80,7 @@ declare function createCandleColumnarSchema(scales: SdkScales): v.SchemaWithPipe
80
80
  nextPageToken: string;
81
81
  }, {
82
82
  symbolId: number;
83
- timeframe: DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">;
83
+ timeframe: DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">;
84
84
  time: number[];
85
85
  open: string[];
86
86
  high: string[];
@@ -100,7 +100,7 @@ declare function createCandleColumnarSchema(scales: SdkScales): v.SchemaWithPipe
100
100
  }>]>;
101
101
  declare function createCandleColumnarIntSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
102
102
  readonly symbolId: v.NumberSchema<undefined>;
103
- readonly timeframe: v.SchemaWithPipe<readonly [v.EnumSchema<typeof Timeframe$1, undefined>, v.TransformAction<Timeframe$1, DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">>]>;
103
+ readonly timeframe: v.SchemaWithPipe<readonly [v.EnumSchema<typeof Timeframe$1, undefined>, v.TransformAction<Timeframe$1, DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">>]>;
104
104
  readonly tsSec: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
105
105
  readonly open: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
106
106
  readonly high: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
@@ -117,7 +117,7 @@ declare function createCandleColumnarIntSchema(scales: SdkScales): v.SchemaWithP
117
117
  readonly nextPageToken: v.OptionalSchema<v.StringSchema<undefined>, "">;
118
118
  }, undefined>, v.TransformAction<{
119
119
  symbolId: number;
120
- timeframe: DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">;
120
+ timeframe: DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">;
121
121
  tsSec: bigint[];
122
122
  open: bigint[];
123
123
  high: bigint[];
@@ -134,7 +134,7 @@ declare function createCandleColumnarIntSchema(scales: SdkScales): v.SchemaWithP
134
134
  nextPageToken: string;
135
135
  }, {
136
136
  symbolId: number;
137
- timeframe: DecodedEnum<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo">;
137
+ timeframe: DecodedEnum<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo">;
138
138
  tsSec: number[];
139
139
  open: string[];
140
140
  high: string[];
@@ -158,7 +158,7 @@ type CandleColumnar = v.InferOutput<ReturnType<typeof createCandleColumnarSchema
158
158
  type CandleColumnarInt = v.InferOutput<ReturnType<typeof createCandleColumnarIntSchema>>;
159
159
  declare function createListCandlesInputSchema(): v.SchemaWithPipe<readonly [v.ObjectSchema<{
160
160
  readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
161
- readonly timeframe: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["1s", "1m", "5m", "15m", "30m", "1h", "4h", "12h", "1d", "1w", "1mo"], undefined>, v.TransformAction<"1d" | "1h" | "1w" | "1m" | "1s" | "5m" | "15m" | "30m" | "4h" | "12h" | "1mo", Timeframe$1.SEC_1 | Timeframe$1.MIN_1 | Timeframe$1.MIN_5 | Timeframe$1.MIN_15 | Timeframe$1.MIN_30 | Timeframe$1.HOUR_1 | Timeframe$1.HOUR_4 | Timeframe$1.DAY_1 | Timeframe$1.HOUR_12 | Timeframe$1.WEEK_1 | Timeframe$1.MONTH_1>]>;
161
+ readonly timeframe: v.SchemaWithPipe<readonly [v.PicklistSchema<readonly ["1s", "1m", "5m", "15m", "30m", "1h", "4h", "12h", "1d", "1w", "1mo"], undefined>, v.TransformAction<"1d" | "1s" | "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "12h" | "1w" | "1mo", Timeframe$1.SEC_1 | Timeframe$1.MIN_1 | Timeframe$1.MIN_5 | Timeframe$1.MIN_15 | Timeframe$1.MIN_30 | Timeframe$1.HOUR_1 | Timeframe$1.HOUR_4 | Timeframe$1.DAY_1 | Timeframe$1.HOUR_12 | Timeframe$1.WEEK_1 | Timeframe$1.MONTH_1>]>;
162
162
  readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 10000, undefined>]>, undefined>;
163
163
  readonly includeIncomplete: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
164
164
  readonly includeReference: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
@@ -13,7 +13,7 @@ type TimestampInit = {
13
13
  };
14
14
  declare const GetOrderbookHeatmapInputSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
15
15
  readonly symbolId: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>;
16
- readonly interval: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["1s", "1m", "5m", "1h"], undefined>, "1s">, v.TransformAction<"1h" | "1m" | "1s" | "5m", HeatmapInterval>]>;
16
+ readonly interval: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["1s", "1m", "5m", "1h"], undefined>, "1s">, v.TransformAction<"1s" | "1m" | "5m" | "1h", HeatmapInterval>]>;
17
17
  readonly depth: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly [1, 5, 10, 20, 50, 100, 200, 500, 1000], undefined>, 50>, v.TransformAction<5 | 10 | 20 | 1 | 200 | 1000 | 500 | 100 | 50, HeatmapDepth>]>;
18
18
  readonly quantityMode: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["close", "peak"], undefined>, "close">, v.TransformAction<"close" | "peak", HeatmapQuantityMode>]>;
19
19
  readonly limit: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 20000, undefined>]>;
@@ -122,7 +122,7 @@ declare function convertHeatmapDeltaBucket(bucket: OrderbookHeatmapDeltaBucketRa
122
122
  type OrderbookHeatmapDeltaBucket = ReturnType<typeof convertHeatmapDeltaBucket>;
123
123
  declare const OrderbookHeatmapLiveBucketRawSchema: v.ObjectSchema<{
124
124
  readonly symbolId: v.NumberSchema<undefined>;
125
- readonly interval: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1h" | "1m" | "1s" | "5m">>]>;
125
+ readonly interval: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1s" | "1m" | "5m" | "1h">>]>;
126
126
  readonly tsSec: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
127
127
  readonly isFinal: v.BooleanSchema<undefined>;
128
128
  readonly bids: v.OptionalSchema<v.ObjectSchema<{
@@ -142,7 +142,7 @@ declare const OrderbookHeatmapLiveBucketRawSchema: v.ObjectSchema<{
142
142
  type OrderbookHeatmapLiveBucketRaw = v.InferOutput<typeof OrderbookHeatmapLiveBucketRawSchema>;
143
143
  declare function convertHeatmapLiveBucket(bucket: OrderbookHeatmapLiveBucketRaw, scales: SdkScales): {
144
144
  symbolId: number;
145
- interval: DecodedEnum<"1h" | "1m" | "1s" | "5m">;
145
+ interval: DecodedEnum<"1s" | "1m" | "5m" | "1h">;
146
146
  tsSec: number;
147
147
  isFinal: boolean;
148
148
  bids: {
@@ -226,7 +226,7 @@ declare function convertHeatmapDeltaChain(chain: OrderbookHeatmapDeltaChainRaw,
226
226
  type OrderbookHeatmapDeltaChain = ReturnType<typeof convertHeatmapDeltaChain>;
227
227
  declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.SchemaWithPipe<readonly [v.ObjectSchema<{
228
228
  readonly symbolId: v.NumberSchema<undefined>;
229
- readonly interval: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1h" | "1m" | "1s" | "5m">>]>;
229
+ readonly interval: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1s" | "1m" | "5m" | "1h">>]>;
230
230
  readonly depth: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, 5 | 10 | 20 | 1 | "unspecified" | 200 | 1000 | 500 | 100 | 50>]>;
231
231
  readonly chain: v.OptionalSchema<v.ObjectSchema<{
232
232
  readonly baseKeyframe: v.OptionalSchema<v.ObjectSchema<{
@@ -267,7 +267,7 @@ declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.Sche
267
267
  readonly quantityMode: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"close" | "peak">>]>;
268
268
  readonly liveBucket: v.OptionalSchema<v.ObjectSchema<{
269
269
  readonly symbolId: v.NumberSchema<undefined>;
270
- readonly interval: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1h" | "1m" | "1s" | "5m">>]>;
270
+ readonly interval: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.TransformAction<number, DecodedEnum<"1s" | "1m" | "5m" | "1h">>]>;
271
271
  readonly tsSec: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, number>]>;
272
272
  readonly isFinal: v.BooleanSchema<undefined>;
273
273
  readonly bids: v.OptionalSchema<v.ObjectSchema<{
@@ -286,7 +286,7 @@ declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.Sche
286
286
  }, undefined>, undefined>;
287
287
  }, undefined>, v.TransformAction<{
288
288
  symbolId: number;
289
- interval: DecodedEnum<"1h" | "1m" | "1s" | "5m">;
289
+ interval: DecodedEnum<"1s" | "1m" | "5m" | "1h">;
290
290
  depth: 5 | 10 | 20 | 1 | "unspecified" | 200 | 1000 | 500 | 100 | 50;
291
291
  chain?: {
292
292
  baseKeyframe?: {
@@ -327,7 +327,7 @@ declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.Sche
327
327
  quantityMode: DecodedEnum<"close" | "peak">;
328
328
  liveBucket?: {
329
329
  symbolId: number;
330
- interval: DecodedEnum<"1h" | "1m" | "1s" | "5m">;
330
+ interval: DecodedEnum<"1s" | "1m" | "5m" | "1h">;
331
331
  tsSec: number;
332
332
  isFinal: boolean;
333
333
  bids?: {
@@ -346,7 +346,7 @@ declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.Sche
346
346
  } | undefined;
347
347
  }, {
348
348
  symbolId: number;
349
- interval: DecodedEnum<"1h" | "1m" | "1s" | "5m">;
349
+ interval: DecodedEnum<"1s" | "1m" | "5m" | "1h">;
350
350
  depth: 5 | 10 | 20 | 1 | "unspecified" | 200 | 1000 | 500 | 100 | 50;
351
351
  chain: {
352
352
  baseKeyframe: {
@@ -387,7 +387,7 @@ declare function createOrderbookHeatmapResponseSchema(scales: SdkScales): v.Sche
387
387
  quantityMode: DecodedEnum<"close" | "peak">;
388
388
  liveBucket: {
389
389
  symbolId: number;
390
- interval: DecodedEnum<"1h" | "1m" | "1s" | "5m">;
390
+ interval: DecodedEnum<"1s" | "1m" | "5m" | "1h">;
391
391
  tsSec: number;
392
392
  isFinal: boolean;
393
393
  bids: {
@@ -30,7 +30,7 @@ declare function createMarketOverviewSchema(scales: SdkScales): v.SchemaWithPipe
30
30
  readonly bestAskTicks: v.BigintSchema<undefined>;
31
31
  readonly bestAskQtyScaled: v.BigintSchema<undefined>;
32
32
  readonly sparklines: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
33
- readonly interval: v.SchemaWithPipe<readonly [v.EnumSchema<typeof SparklineInterval, undefined>, v.TransformAction<SparklineInterval, "unspecified" | "1h" | "24h" | "1w" | "1m">]>;
33
+ readonly interval: v.SchemaWithPipe<readonly [v.EnumSchema<typeof SparklineInterval, undefined>, v.TransformAction<SparklineInterval, "unspecified" | "1m" | "1h" | "1w" | "24h">]>;
34
34
  readonly closeTicks: v.ArraySchema<v.BigintSchema<undefined>, undefined>;
35
35
  }, undefined>, undefined>, readonly []>;
36
36
  readonly indexPriceTicks: v.BigintSchema<undefined>;
@@ -50,7 +50,7 @@ declare function createMarketOverviewSchema(scales: SdkScales): v.SchemaWithPipe
50
50
  bestAskTicks: bigint;
51
51
  bestAskQtyScaled: bigint;
52
52
  sparklines: {
53
- interval: "unspecified" | "1h" | "24h" | "1w" | "1m";
53
+ interval: "unspecified" | "1m" | "1h" | "1w" | "24h";
54
54
  closeTicks: bigint[];
55
55
  }[];
56
56
  indexPriceTicks: bigint;
@@ -80,7 +80,7 @@ declare const ListMarketOverviewInputSchema: v.SchemaWithPipe<readonly [v.Strict
80
80
  readonly orderBy: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["change_24h_bps", "volume_24h_usd", "last_price", "date_added"], undefined>, "volume_24h_usd">, v.TransformAction<"change_24h_bps" | "volume_24h_usd" | "last_price" | "date_added", MarketOrderBy.ORDER_BY_CHANGE_24H_BPS | MarketOrderBy.ORDER_BY_VOLUME_24H_USD | MarketOrderBy.ORDER_BY_LAST_PRICE | MarketOrderBy.ORDER_BY_DATE_ADDED>]>;
81
81
  readonly sort: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["asc", "desc"], undefined>, "desc">, v.TransformAction<"asc" | "desc", SortDirection.SORT_ASC | SortDirection.SORT_DESC>]>;
82
82
  readonly includeSparklines: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
83
- readonly sparklineIntervals: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["1h", "24h", "1w", "1m"], undefined>, undefined>, readonly ["24h"]>, v.TransformAction<("1h" | "24h" | "1w" | "1m")[], (SparklineInterval.SPARKLINE_1H | SparklineInterval.SPARKLINE_24H | SparklineInterval.SPARKLINE_1W | SparklineInterval.SPARKLINE_1M)[]>]>;
83
+ readonly sparklineIntervals: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["1h", "24h", "1w", "1m"], undefined>, undefined>, readonly ["24h"]>, v.TransformAction<("1m" | "1h" | "1w" | "24h")[], (SparklineInterval.SPARKLINE_1H | SparklineInterval.SPARKLINE_24H | SparklineInterval.SPARKLINE_1W | SparklineInterval.SPARKLINE_1M)[]>]>;
84
84
  }, undefined>, v.TransformAction<{
85
85
  symbolIds: number[];
86
86
  limit: number;
@@ -3140,18 +3140,18 @@ declare const GetBatchReplaceStatusResultSchema: v.SchemaWithPipe<readonly [v.Ob
3140
3140
  readonly admissionStatus: v.SchemaWithPipe<readonly [v.EnumSchema<typeof BatchReplaceAdmissionStatus, undefined>, v.TransformAction<BatchReplaceAdmissionStatus, "unspecified" | "rejected" | "admitted" | "partially_admitted">]>;
3141
3141
  readonly items: v.ArraySchema<v.SchemaWithPipe<readonly [v.ObjectSchema<{
3142
3142
  readonly itemIndex: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
3143
- readonly phase: v.SchemaWithPipe<readonly [v.EnumSchema<typeof BatchReplacePhase, undefined>, v.TransformAction<BatchReplacePhase, "unspecified" | "terminal" | "working" | "rejected" | "admitted">]>;
3143
+ readonly phase: v.SchemaWithPipe<readonly [v.EnumSchema<typeof BatchReplacePhase, undefined>, v.TransformAction<BatchReplacePhase, "unspecified" | "terminal" | "rejected" | "admitted" | "working">]>;
3144
3144
  readonly oldOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
3145
3145
  readonly replacementOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
3146
- readonly orderStatus: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderStatus, undefined>, v.TransformAction<OrderStatus, "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected">]>;
3146
+ readonly orderStatus: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderStatus, undefined>, v.TransformAction<OrderStatus, "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled">]>;
3147
3147
  readonly code: v.StringSchema<undefined>;
3148
3148
  readonly updatedTsNs: v.BigintSchema<undefined>;
3149
3149
  }, undefined>, v.TransformAction<{
3150
3150
  itemIndex: number;
3151
- phase: "unspecified" | "terminal" | "working" | "rejected" | "admitted";
3151
+ phase: "unspecified" | "terminal" | "rejected" | "admitted" | "working";
3152
3152
  oldOrderId?: string | undefined;
3153
3153
  replacementOrderId?: string | undefined;
3154
- orderStatus: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected";
3154
+ orderStatus: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled";
3155
3155
  code: string;
3156
3156
  updatedTsNs: bigint;
3157
3157
  }, {
@@ -3159,10 +3159,10 @@ declare const GetBatchReplaceStatusResultSchema: v.SchemaWithPipe<readonly [v.Ob
3159
3159
  updatedTs: number;
3160
3160
  updatedTsNs: string;
3161
3161
  itemIndex: number;
3162
- phase: "unspecified" | "terminal" | "working" | "rejected" | "admitted";
3162
+ phase: "unspecified" | "terminal" | "rejected" | "admitted" | "working";
3163
3163
  oldOrderId?: string | undefined;
3164
3164
  replacementOrderId?: string | undefined;
3165
- orderStatus: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected";
3165
+ orderStatus: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled";
3166
3166
  }>]>, undefined>;
3167
3167
  readonly acceptedCount: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
3168
3168
  readonly rejectedCount: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
@@ -3176,10 +3176,10 @@ declare const GetBatchReplaceStatusResultSchema: v.SchemaWithPipe<readonly [v.Ob
3176
3176
  updatedTs: number;
3177
3177
  updatedTsNs: string;
3178
3178
  itemIndex: number;
3179
- phase: "unspecified" | "terminal" | "working" | "rejected" | "admitted";
3179
+ phase: "unspecified" | "terminal" | "rejected" | "admitted" | "working";
3180
3180
  oldOrderId?: string | undefined;
3181
3181
  replacementOrderId?: string | undefined;
3182
- orderStatus: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected";
3182
+ orderStatus: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled";
3183
3183
  }[];
3184
3184
  acceptedCount: number;
3185
3185
  rejectedCount: number;
@@ -3193,10 +3193,10 @@ declare const GetBatchReplaceStatusResultSchema: v.SchemaWithPipe<readonly [v.Ob
3193
3193
  updatedTs: number;
3194
3194
  updatedTsNs: string;
3195
3195
  itemIndex: number;
3196
- phase: "unspecified" | "terminal" | "working" | "rejected" | "admitted";
3196
+ phase: "unspecified" | "terminal" | "rejected" | "admitted" | "working";
3197
3197
  oldOrderId?: string | undefined;
3198
3198
  replacementOrderId?: string | undefined;
3199
- orderStatus: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected";
3199
+ orderStatus: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled";
3200
3200
  }[];
3201
3201
  acceptedCount: number;
3202
3202
  rejectedCount: number;
@@ -3210,10 +3210,10 @@ declare const GetBatchReplaceStatusResultSchema: v.SchemaWithPipe<readonly [v.Ob
3210
3210
  updatedTs: number;
3211
3211
  updatedTsNs: string;
3212
3212
  itemIndex: number;
3213
- phase: "unspecified" | "terminal" | "working" | "rejected" | "admitted";
3213
+ phase: "unspecified" | "terminal" | "rejected" | "admitted" | "working";
3214
3214
  oldOrderId?: string | undefined;
3215
3215
  replacementOrderId?: string | undefined;
3216
- orderStatus: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected";
3216
+ orderStatus: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled";
3217
3217
  }[];
3218
3218
  acceptedCount: number;
3219
3219
  rejectedCount: number;
@@ -3231,10 +3231,10 @@ declare const GetBatchReplaceStatusResultSchema: v.SchemaWithPipe<readonly [v.Ob
3231
3231
  updatedTs: number;
3232
3232
  updatedTsNs: string;
3233
3233
  itemIndex: number;
3234
- phase: "unspecified" | "terminal" | "working" | "rejected" | "admitted";
3234
+ phase: "unspecified" | "terminal" | "rejected" | "admitted" | "working";
3235
3235
  oldOrderId?: string | undefined;
3236
3236
  replacementOrderId?: string | undefined;
3237
- orderStatus: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected";
3237
+ orderStatus: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled";
3238
3238
  }[];
3239
3239
  acceptedCount: number;
3240
3240
  rejectedCount: number;
@@ -9,7 +9,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
9
9
  readonly symbolId: v.NumberSchema<undefined>;
10
10
  readonly clientOrderId: v.StringSchema<undefined>;
11
11
  readonly side: v.EnumSchema<typeof Side, undefined>;
12
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderStatus, undefined>, v.TransformAction<OrderStatus, "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected">]>;
12
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderStatus, undefined>, v.TransformAction<OrderStatus, "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled">]>;
13
13
  readonly orderType: v.NumberSchema<undefined>;
14
14
  readonly timeInForce: v.NumberSchema<undefined>;
15
15
  readonly selfTradePreventionMode: v.NumberSchema<undefined>;
@@ -111,7 +111,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
111
111
  symbolId: number;
112
112
  clientOrderId: string;
113
113
  side: Side;
114
- status: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected";
114
+ status: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled";
115
115
  orderType: number;
116
116
  timeInForce: number;
117
117
  selfTradePreventionMode: number;
@@ -224,7 +224,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
224
224
  orderId: string;
225
225
  symbolId: number;
226
226
  clientOrderId: string;
227
- status: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected" | "partial";
227
+ status: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled" | "partial";
228
228
  side: "unspecified" | "buy" | "sell";
229
229
  orderType: "unspecified" | "limit" | "market";
230
230
  timeInForce: "unspecified" | "GTC" | "IOC" | "FOK";
@@ -243,7 +243,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
243
243
  attachedRisk: {
244
244
  takeProfit: {
245
245
  state: {
246
- status: "unspecified" | "failed" | "created" | "completed" | "armed" | "running" | "paused" | "canceled" | "not_configured";
246
+ status: "unspecified" | "failed" | "completed" | "created" | "armed" | "running" | "paused" | "canceled" | "not_configured";
247
247
  armedTs: number | undefined;
248
248
  armedTsNs: string | undefined;
249
249
  terminalTs: number | undefined;
@@ -262,7 +262,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
262
262
  } | undefined;
263
263
  stopLoss: {
264
264
  state: {
265
- status: "unspecified" | "failed" | "created" | "completed" | "armed" | "running" | "paused" | "canceled" | "not_configured";
265
+ status: "unspecified" | "failed" | "completed" | "created" | "armed" | "running" | "paused" | "canceled" | "not_configured";
266
266
  armedTs: number | undefined;
267
267
  armedTsNs: string | undefined;
268
268
  terminalTs: number | undefined;
@@ -281,7 +281,7 @@ declare function createOrderSchema(scales: SdkScales): v.SchemaWithPipe<readonly
281
281
  } | undefined;
282
282
  trailingStop: {
283
283
  state: {
284
- status: "unspecified" | "failed" | "created" | "completed" | "armed" | "running" | "paused" | "canceled" | "not_configured";
284
+ status: "unspecified" | "failed" | "completed" | "created" | "armed" | "running" | "paused" | "canceled" | "not_configured";
285
285
  armedTs: number | undefined;
286
286
  armedTsNs: string | undefined;
287
287
  terminalTs: number | undefined;
@@ -352,7 +352,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
352
352
  readonly symbolId: v.NumberSchema<undefined>;
353
353
  readonly clientOrderId: v.StringSchema<undefined>;
354
354
  readonly side: v.EnumSchema<typeof Side, undefined>;
355
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderStatus, undefined>, v.TransformAction<OrderStatus, "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected">]>;
355
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof OrderStatus, undefined>, v.TransformAction<OrderStatus, "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled">]>;
356
356
  readonly orderType: v.NumberSchema<undefined>;
357
357
  readonly timeInForce: v.NumberSchema<undefined>;
358
358
  readonly selfTradePreventionMode: v.NumberSchema<undefined>;
@@ -454,7 +454,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
454
454
  symbolId: number;
455
455
  clientOrderId: string;
456
456
  side: Side;
457
- status: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected";
457
+ status: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled";
458
458
  orderType: number;
459
459
  timeInForce: number;
460
460
  selfTradePreventionMode: number;
@@ -567,7 +567,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
567
567
  orderId: string;
568
568
  symbolId: number;
569
569
  clientOrderId: string;
570
- status: "unspecified" | "pending" | "canceled" | "pending_cancel" | "working" | "filled" | "rejected" | "partial";
570
+ status: "unspecified" | "pending" | "canceled" | "rejected" | "working" | "pending_cancel" | "filled" | "partial";
571
571
  side: "unspecified" | "buy" | "sell";
572
572
  orderType: "unspecified" | "limit" | "market";
573
573
  timeInForce: "unspecified" | "GTC" | "IOC" | "FOK";
@@ -586,7 +586,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
586
586
  attachedRisk: {
587
587
  takeProfit: {
588
588
  state: {
589
- status: "unspecified" | "failed" | "created" | "completed" | "armed" | "running" | "paused" | "canceled" | "not_configured";
589
+ status: "unspecified" | "failed" | "completed" | "created" | "armed" | "running" | "paused" | "canceled" | "not_configured";
590
590
  armedTs: number | undefined;
591
591
  armedTsNs: string | undefined;
592
592
  terminalTs: number | undefined;
@@ -605,7 +605,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
605
605
  } | undefined;
606
606
  stopLoss: {
607
607
  state: {
608
- status: "unspecified" | "failed" | "created" | "completed" | "armed" | "running" | "paused" | "canceled" | "not_configured";
608
+ status: "unspecified" | "failed" | "completed" | "created" | "armed" | "running" | "paused" | "canceled" | "not_configured";
609
609
  armedTs: number | undefined;
610
610
  armedTsNs: string | undefined;
611
611
  terminalTs: number | undefined;
@@ -624,7 +624,7 @@ declare function createOrderDetailsSchema(scales: SdkScales): v.ObjectSchema<{
624
624
  } | undefined;
625
625
  trailingStop: {
626
626
  state: {
627
- status: "unspecified" | "failed" | "created" | "completed" | "armed" | "running" | "paused" | "canceled" | "not_configured";
627
+ status: "unspecified" | "failed" | "completed" | "created" | "armed" | "running" | "paused" | "canceled" | "not_configured";
628
628
  armedTs: number | undefined;
629
629
  armedTsNs: string | undefined;
630
630
  terminalTs: number | undefined;
@@ -280,7 +280,7 @@ declare const SubaccountActivityEventSchema: v.ObjectSchema<{
280
280
  nanos: number;
281
281
  } | undefined, number | undefined>]>;
282
282
  readonly entityKind: v.SchemaWithPipe<readonly [v.EnumSchema<typeof ActivityEntityKind, undefined>, v.TransformAction<ActivityEntityKind, "unspecified" | "api_key" | "account" | "subaccount" | "destination" | "session" | "policy" | "member" | "invite" | "security">]>;
283
- readonly eventAction: v.SchemaWithPipe<readonly [v.EnumSchema<typeof ActivityEventAction, undefined>, v.TransformAction<ActivityEventAction, "unspecified" | "enabled" | "disabled" | "failed" | "created" | "updated" | "deleted" | "removed" | "role_set" | "received" | "replied" | "revoked" | "blocked" | "hold_placed" | "hold_released">]>;
283
+ readonly eventAction: v.SchemaWithPipe<readonly [v.EnumSchema<typeof ActivityEventAction, undefined>, v.TransformAction<ActivityEventAction, "unspecified" | "enabled" | "disabled" | "revoked" | "failed" | "created" | "updated" | "deleted" | "removed" | "role_set" | "received" | "replied" | "blocked" | "hold_placed" | "hold_released">]>;
284
284
  readonly source: v.SchemaWithPipe<readonly [v.EnumSchema<typeof ActivityEventSource, undefined>, v.TransformAction<ActivityEventSource, "unspecified" | "web" | "mobile" | "api">]>;
285
285
  readonly ip: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
286
286
  readonly userAgent: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
@@ -845,7 +845,7 @@ type CreateTriggerInput = v.InferInput<ReturnType<typeof createCreateTriggerInpu
845
845
  declare const ListTriggersInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
846
846
  readonly parentOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
847
847
  readonly symbolId: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>, undefined>;
848
- readonly status: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["created", "armed", "running", "completed", "cancelled", "failed", "paused"], undefined>, undefined>, undefined>, v.TransformAction<("failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused")[] | undefined, (TriggerStatus.STATUS_CREATED | TriggerStatus.STATUS_ARMED | TriggerStatus.STATUS_RUNNING | TriggerStatus.STATUS_COMPLETED | TriggerStatus.STATUS_CANCELED | TriggerStatus.STATUS_FAILED | TriggerStatus.STATUS_PAUSED)[]>]>;
848
+ readonly status: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["created", "armed", "running", "completed", "cancelled", "failed", "paused"], undefined>, undefined>, undefined>, v.TransformAction<("failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused")[] | undefined, (TriggerStatus.STATUS_CREATED | TriggerStatus.STATUS_ARMED | TriggerStatus.STATUS_RUNNING | TriggerStatus.STATUS_COMPLETED | TriggerStatus.STATUS_CANCELED | TriggerStatus.STATUS_FAILED | TriggerStatus.STATUS_PAUSED)[]>]>;
849
849
  readonly triggerType: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["stop_loss", "take_profit", "trailing_stop", "twap", "ladder"], undefined>, undefined>, v.TransformAction<"twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop" | undefined, TriggerType>]>;
850
850
  readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 1000, undefined>]>, 50>;
851
851
  readonly pageToken: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, "">;
@@ -31,62 +31,62 @@ declare const CreateTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSche
31
31
  type CreateTriggerResult = v.InferOutput<typeof CreateTriggerResultSchema>;
32
32
  declare const CancelTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
33
33
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
34
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused">]>;
34
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
35
35
  readonly tsNs: v.BigintSchema<undefined>;
36
36
  }, undefined>, v.TransformAction<{
37
37
  triggerId: string;
38
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
38
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
39
39
  tsNs: bigint;
40
40
  }, {
41
41
  ts: number;
42
42
  tsNs: string;
43
43
  triggerId: string;
44
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
44
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
45
45
  }>]>;
46
46
  type CancelTriggerResult = v.InferOutput<typeof CancelTriggerResultSchema>;
47
47
  declare const ModifyTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
48
48
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
49
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused">]>;
49
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
50
50
  readonly tsNs: v.BigintSchema<undefined>;
51
51
  }, undefined>, v.TransformAction<{
52
52
  triggerId: string;
53
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
53
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
54
54
  tsNs: bigint;
55
55
  }, {
56
56
  ts: number;
57
57
  tsNs: string;
58
58
  triggerId: string;
59
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
59
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
60
60
  }>]>;
61
61
  type ModifyTriggerResult = v.InferOutput<typeof ModifyTriggerResultSchema>;
62
62
  declare const PauseTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
63
63
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
64
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused">]>;
64
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
65
65
  readonly tsNs: v.BigintSchema<undefined>;
66
66
  }, undefined>, v.TransformAction<{
67
67
  triggerId: string;
68
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
68
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
69
69
  tsNs: bigint;
70
70
  }, {
71
71
  ts: number;
72
72
  tsNs: string;
73
73
  triggerId: string;
74
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
74
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
75
75
  }>]>;
76
76
  type PauseTriggerResult = v.InferOutput<typeof PauseTriggerResultSchema>;
77
77
  declare const ResumeTriggerResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
78
78
  readonly triggerId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
79
- readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused">]>;
79
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof TriggerStatus, undefined>, v.TransformAction<TriggerStatus, "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused">]>;
80
80
  readonly tsNs: v.BigintSchema<undefined>;
81
81
  }, undefined>, v.TransformAction<{
82
82
  triggerId: string;
83
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
83
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
84
84
  tsNs: bigint;
85
85
  }, {
86
86
  ts: number;
87
87
  tsNs: string;
88
88
  triggerId: string;
89
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
89
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
90
90
  }>]>;
91
91
  type ResumeTriggerResult = v.InferOutput<typeof ResumeTriggerResultSchema>;
92
92
  type StopDetailsOutput = {
@@ -558,7 +558,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
558
558
  triggerId: string;
559
559
  subaccountId: string;
560
560
  symbolId: number;
561
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
561
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
562
562
  parentOrderId: string | undefined;
563
563
  qty: string;
564
564
  feeAsset: "unspecified" | "quote" | "base";
@@ -714,7 +714,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
714
714
  triggerId: string;
715
715
  subaccountId: string;
716
716
  symbolId: number;
717
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
717
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
718
718
  parentOrderId: string | undefined;
719
719
  qty: string;
720
720
  feeAsset: "unspecified" | "quote" | "base";
@@ -870,7 +870,7 @@ declare function createTriggerSchema(scales: SdkScales): v.SchemaWithPipe<readon
870
870
  triggerId: string;
871
871
  subaccountId: string;
872
872
  symbolId: number;
873
- status: "unspecified" | "failed" | "cancelled" | "created" | "completed" | "armed" | "running" | "paused";
873
+ status: "unspecified" | "failed" | "cancelled" | "completed" | "created" | "armed" | "running" | "paused";
874
874
  parentOrderId: string | undefined;
875
875
  qty: string;
876
876
  feeAsset: "unspecified" | "quote" | "base";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyester/sdk",
3
- "version": "0.21.0",
3
+ "version": "0.21.1",
4
4
  "private": false,
5
5
  "description": "TypeScript SDK providing access to APIs on Polyester Exchange.",
6
6
  "homepage": "https://github.com/Fabric-Labs/polyester-sdk-typescript#readme",