Skip to content

@mysten-incubation/devstack@0.5.0

Choose a tag to compare

@github-actions github-actions released this 26 Jun 19:00
· 45 commits to main since this release
4246e04

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 DeepBook packageId and means future SDK bumps flow through
      automatically. Walrus known mode now defaults systemObjectId/stakingPoolId/exchangeIds
      from the SDK, so a caller only supplies nodes.
    • 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 redundant network-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-secret apiKeyName — a factory-time error if missing).
      The stale seal-keyserver.testnet.mystenlabs.com URL is removed (object IDs are the source of
      truth). SealKeyServerEntry is now a true structural mirror of the SDK's KeyServerConfig
      (adds apiKeyName/apiKey), guarded by a real compile-time drift check, and verifyKeyServers
      is surfaced (defaults on for live; local-keygen keeps it off for self-signed servers).
      devstack never carries the secret committee apiKey value — the committed seal.ts and the
      world-readable deployment.json would both expose it. devstack emits only the non-secret
      apiKeyName plus the committee serverConfigs; a verbatim serverConfigs override that embeds
      an apiKey is rejected, and codegen strips any apiKey from the emitted config as
      defense-in-depth. The app injects the secret apiKey into serverConfigs at runtime (keyed by
      apiKeyName) when it constructs SealClient.