referrerpolicy=no-referrer-when-downgrade

Function pallet_contracts::pallet::dispatchables::upload_code

source ·
pub fn upload_code<T: Config>(
    code: Vec<u8>,
    storage_deposit_limit: Option<<<<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance as HasCompact>::Type>,
    determinism: Determinism,
)
Expand description

Upload new code without instantiating a contract from it.

If the code does not already exist a deposit is reserved from the caller and unreserved only when [Self::remove_code] is called. The size of the reserve depends on the size of the supplied code.

If the code already exists in storage it will still return Ok and upgrades the in storage version to the current InstructionWeights::version.

§Note

Anyone can instantiate a contract from any uploaded code and thus prevent its removal. To avoid this situation a constructor could employ access control so that it can only be instantiated by permissioned entities. The same is true when uploading through [Self::instantiate_with_code].

Use Determinism::Relaxed exclusively for non-deterministic code. If the uploaded code is deterministic, specifying Determinism::Relaxed will be disregarded and result in higher gas costs.

§Warning: Doc-Only

This function is an automatically generated, and is doc-only, uncallable stub. See the real version in Pallet::upload_code.