@mysten-incubation/devstack@0.5.0
·
45 commits
to main
since this release
Minor Changes
-
4fc3586: Align known/live-network config with the built-in
@mysten/*SDK constants, and unify
the per-service factory ergonomics.- Known-network ids now come from the SDK (no drift). DeepBook's known deployments derive from
@mysten/deepbook-v3(testnet/mainnetPackageIds,…PythConfigs) and Walrus's from
@mysten/walrus(TESTNET/MAINNET_WALRUS_PACKAGE_CONFIG) instead of hand-copied literals. This
fixes a stale mainnet DeepBookpackageIdand means future SDK bumps flow through
automatically. Walrus known mode now defaultssystemObjectId/stakingPoolId/exchangeIds
from the SDK, so a caller only suppliesnodes. - Unified factory shape. Known/live networks use per-network methods across all plugins:
deepbookFor(net).testnet()/.mainnet(),
walrusFor(net).testnet({ nodes })/.mainnet({ nodes }),
sealFor(net).testnet()/.mainnet(). The redundantnetwork-in-.known({ network })path is
removed;.known(...)/.custom(...)are now raw-id overrides only. - Seal committee support. Live/fork-known modes now model both independent and decentralized
(committee) key servers with the current Mysten object IDs.sealFor(net).testnet()resolves to
both Mysten testnet independent servers (zero-config, no API key);
.testnet({ server: 'committee' })and.mainnet({ server: 'committee', apiKeyName })select
the committee (mainnet requires the non-secretapiKeyName— a factory-time error if missing).
The staleseal-keyserver.testnet.mystenlabs.comURL is removed (object IDs are the source of
truth).SealKeyServerEntryis now a true structural mirror of the SDK'sKeyServerConfig
(addsapiKeyName/apiKey), guarded by a real compile-time drift check, andverifyKeyServers
is surfaced (defaults on for live; local-keygen keeps it off for self-signed servers).
devstack never carries the secret committeeapiKeyvalue — the committedseal.tsand the
world-readabledeployment.jsonwould both expose it. devstack emits only the non-secret
apiKeyNameplus the committeeserverConfigs; a verbatimserverConfigsoverride that embeds
anapiKeyis rejected, and codegen strips anyapiKeyfrom the emitted config as
defense-in-depth. The app injects the secretapiKeyintoserverConfigsat runtime (keyed by
apiKeyName) when it constructsSealClient.
- Known-network ids now come from the SDK (no drift). DeepBook's known deployments derive from