[WIP} proposed plan for cross-environment publish and data consolidation - #56
Draft
fc-tezza wants to merge 2 commits into
Draft
[WIP} proposed plan for cross-environment publish and data consolidation#56fc-tezza wants to merge 2 commits into
fc-tezza wants to merge 2 commits into
Conversation
Collaborator
|
This looks very clean. just one suggestion, we can move publish.config.json per extension to a new folder instead of move-contracts if thats okay |
0xxlegolas
reviewed
Mar 12, 2026
|
|
||
| - Thread `network: Network` parameter through `requireBuilderPackageId`, `resolveSmartGateExtensionIdsFromEnv`, `resolveSmartGateExtensionIds` | ||
| - Read `packageId` from `loadDeploymentIds(network)?.smart_gate_extension?.packageId`, fall back to `BUILDER_PACKAGE_ID` env var | ||
| - Read `extensionConfigId` from `loadDeploymentIds(network)?.smart_gate_extension?.extensionConfigId`, fall back to `EXTENSION_CONFIG_ID` env var |
Collaborator
There was a problem hiding this comment.
can we do the other way around to give env the first preference? check env first and fall back to the deployments.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR consolidates how deployed object IDs are tracked and populated across
all environments (localnet, testnet tenants - future devnet and mainnet tenants) in the builder scaffold.
Full implementation plan:
data_consolidation_plan.mdKey changes
deployments/localnet/extracted-object-ids.json→deployment-ids.json— a more accurate name now that it holds both worldand extension IDs
pnpm publish-extension --extension <name> --env <env>. It runssui client publish, captures all relevant object IDs from the transactionoutput (driven by a per-extension
publish.config.json), and writes them todeployment-ids.jsonin one atomic step. Any nativesui client publishflags (e.g.
--gas-budget) can be passed through.populate-world-idsscript —pnpm populate-world-ids --env <env>becomes the single consistent mechanism for populating the world section of
deployment-ids.jsonacross all environments. It reads the worldpackageIdfrom
Pub.localnet.toml(localnet) or hardcoded constants fromworld-contracts
Published.toml(testnet tenants), then queries the SuiGraphQL endpoint to discover the world shared objects. Replaces ad-hoc
world ID extraction in the Docker / host setup flows.
DeploymentIdstype — open index signature replaces the stalebuilder?key, allowing any extension to write its IDs under its own namespace key.
extension-ids.ts— reads IDs fromdeployment-ids.jsonfirst,falling back to
BUILDER_PACKAGE_ID/EXTENSION_CONFIG_IDenv vars forbackward compatibility.
New developer workflow