@neutral-trade/sdk 0.2.11 → 0.2.13

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.
Files changed (2) hide show
  1. package/dist/index.mjs +14 -13
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -12847,25 +12847,26 @@ function getDriftProgramId(vault) {
12847
12847
  /**
12848
12848
  * Transform a registry entry to VaultConfig with program IDs
12849
12849
  * - Drift vaults get driftProgramId
12850
- * - Bundle vaults get bundleProgramId
12850
+ * - Bundle vaults get bundleProgramId (registry value or cluster default via {@link getBundleProgramId})
12851
12851
  */
12852
- function toVaultConfig(entry) {
12852
+ function toVaultConfig(entry, cluster = "mainnet") {
12853
12853
  return {
12854
12854
  ...entry,
12855
12855
  driftProgramId: getDriftProgramId(entry),
12856
- bundleProgramId: entry.bundleProgramId
12856
+ bundleProgramId: getBundleProgramId(entry, cluster)
12857
12857
  };
12858
12858
  }
12859
12859
  /**
12860
12860
  * Transform an array of registry entries to VaultRegistry
12861
+ * @param cluster - Used to resolve default bundle program id when `bundleProgramId` is omitted in JSON
12861
12862
  */
12862
- function toVaultRegistry(entries) {
12863
- return Object.fromEntries(entries.map((entry) => [entry.vaultId, toVaultConfig(entry)]));
12863
+ function toVaultRegistry(entries, cluster = "mainnet") {
12864
+ return Object.fromEntries(entries.map((entry) => [entry.vaultId, toVaultConfig(entry, cluster)]));
12864
12865
  }
12865
12866
  const parsedVaultsMainnet = VaultRegistryArraySchema.parse(vaults_default);
12866
12867
  const parsedVaultsDevnet = VaultRegistryArraySchema.parse(vaults_devnet_default);
12867
- const vaultsMainnetRegistry = toVaultRegistry(parsedVaultsMainnet);
12868
- const vaultsDevnetRegistry = toVaultRegistry(parsedVaultsDevnet);
12868
+ const vaultsMainnetRegistry = toVaultRegistry(parsedVaultsMainnet, "mainnet");
12869
+ const vaultsDevnetRegistry = toVaultRegistry(parsedVaultsDevnet, "devnet");
12869
12870
  /** Mainnet registry (default; backward compatible). */
12870
12871
  const vaults = vaultsMainnetRegistry;
12871
12872
  /** Devnet-only vault registry (fixtures / local testing). */
@@ -13282,14 +13283,14 @@ var NeutralTrade = class NeutralTrade {
13282
13283
  const cluster = config.bundleCluster ?? "mainnet";
13283
13284
  let vaults$1 = config.includeBuiltInVaults !== false ? { ...getVaultRegistry(cluster) } : {};
13284
13285
  if (config.registry) {
13285
- const localVaults = NeutralTrade.parseVaultRegistryEntries(config.registry, "registry");
13286
+ const localVaults = NeutralTrade.parseVaultRegistryEntries(config.registry, "registry", cluster);
13286
13287
  vaults$1 = {
13287
13288
  ...vaults$1,
13288
13289
  ...localVaults
13289
13290
  };
13290
13291
  }
13291
13292
  if (config.registryUrl) {
13292
- const remoteVaults = await NeutralTrade.fetchVaultsFromRegistry(config.registryUrl);
13293
+ const remoteVaults = await NeutralTrade.fetchVaultsFromRegistry(config.registryUrl, cluster);
13293
13294
  vaults$1 = {
13294
13295
  ...vaults$1,
13295
13296
  ...remoteVaults
@@ -13321,21 +13322,21 @@ var NeutralTrade = class NeutralTrade {
13321
13322
  if (!bundleProgram) throw new Error(`Bundle program client not initialized for vault ${vault.vaultId}: ${programId}. Please add it to bundlePrograms config or registry.`);
13322
13323
  return bundleProgram;
13323
13324
  }
13324
- static parseVaultRegistryEntries(entries, sourceLabel) {
13325
+ static parseVaultRegistryEntries(entries, sourceLabel, cluster) {
13325
13326
  const parseResult = VaultRegistryArraySchema.safeParse(entries);
13326
13327
  if (!parseResult.success) throw new Error(`Invalid ${sourceLabel} data: ${parseResult.error.message}`);
13327
- return toVaultRegistry(parseResult.data);
13328
+ return toVaultRegistry(parseResult.data, cluster);
13328
13329
  }
13329
13330
  /**
13330
13331
  * Fetch vault configurations from a remote registry URL
13331
13332
  * Expects JSON array format and transforms to Record<number, VaultConfig>
13332
13333
  * @throws Error if fetch fails or validation fails
13333
13334
  */
13334
- static async fetchVaultsFromRegistry(registryUrl) {
13335
+ static async fetchVaultsFromRegistry(registryUrl, cluster) {
13335
13336
  const response = await fetch(registryUrl);
13336
13337
  if (!response.ok) throw new Error(`Failed to fetch vaults from registry: ${response.status} ${response.statusText}`);
13337
13338
  const data = await response.json();
13338
- return NeutralTrade.parseVaultRegistryEntries(data, "vault registry");
13339
+ return NeutralTrade.parseVaultRegistryEntries(data, "vault registry", cluster);
13339
13340
  }
13340
13341
  /**
13341
13342
  * Get user balance for Bundle vaults only.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@neutral-trade/sdk",
3
3
  "type": "module",
4
- "version": "0.2.11",
4
+ "version": "0.2.13",
5
5
  "description": "SDK for Neutral Trade vaults",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/neutral-trade/sdk#readme",