Same question (canonical copy): GitHub organization radixdlt, repository radixdlt-scrypto, issue #2091. Search those three tokens in a browser if you want the full thread; maintainer replies there matter most. I’m posting here for archive/search only.
Hello,
We need clear guidance on whether a live Mainnet component can be associated with a newer published package / WASM so new methods run on the same global component and same fungible ESS resource—or whether re-instantiation is the only supported path.
Context
Radix ↔ Massa bridge design: fixed-supply ESS (1,000,000 units minted at genesis into the component treasury), lock_essence / unlock_essence, operator badge (SBOP) for treasury ops and unlock. We published a new package that adds withdraw_treasury_bucket (SBOP proof → bucket to worktop) so we can fund a user account before lock_essence.
The live component was globalized with prepare_to_globalize(OwnerRole::None). Radix Developer Console only offered flows that ended in OwnerRole::None (we couldn’t pick a different owner pattern there).
On-ledger references
- Existing global component:
component_rdx1cqdustwrxlc46nmursshyj7n8m5gzhnzta3ypcnez74l2wcg2uadqx - Package instantiated from:
package_rdx1p57sv0gpl4thcvjxxragt9h9g5ycwunxtklrdj0vh55nhedf4njray - New package:
package_rdx1phthwnwjx0mg6ct6whlnta3ra7eyjkz57txu9ngny4lf6jzju6pevy
Question
With OwnerRole::None, is there any supported Mainnet procedure today (Console, manifest, documented toolkit) to upgrade / re-point the existing component to the new package so withdraw_treasury_bucket exists without a second instantiate?
If no, please say so plainly. Our fallback is new instantiate, which in our blueprint mints another 1,000,000 ESS as a second resource address (two distinct ESS resources on Mainnet, each with its own genesis treasury—not extra XRD, but two fixed-supply ESS resources).
Pointers to canonical docs appreciated.
Thank you.