@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.
- package/dist/index.mjs +14 -13
- 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
|
|
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.
|