You are not reading the current version of this documentation. 2.0.0 is the current version.

Universal Deployer

Reference of the Universal Deployer Contract (UDC) interface and preset.

Core

IUniversalDeployer

use openzeppelin_utils::interfaces::IUniversalDeployer;

Functions

deploy_contract(class_hash: ClassHash, salt: felt252, not_from_zero: bool, calldata: Span<felt252>) → ContractAddress external

Deploys a contract through the Universal Deployer Contract.

Events

ContractDeployed(address: ContractAddress, deployer: ContractAddress, not_from_zero: bool, class_hash: ClassHash, calldata: Span<felt252>, salt: felt252) event

Emitted when deployer deploys a contract through the Universal Deployer Contract.

Presets

UniversalDeployer

use openzeppelin_presets::UniversalDeployer;

The standard Universal Deployer Contract.

0x01b2df6d8861670d4a8ca4670433b2418d78169c2947f46dc614e69f333745c8

deploy_contract(ref self: ContractState, address: ContractAddress, deployer: ContractAddress, not_from_zero: bool, class_hash: ClassHash, calldata: Span<felt252>, salt: felt252) -> ContractAddress external

Deploys a contract through the Universal Deployer Contract.

When not_from_zero is true, salt is hashed with the caller address and the modified salt is passed to the inner deploy_syscall. This type of deployment is origin-dependent.

When not_from_zero is false, the deployment type is origin-independent.

Emits an ContractDeployed event.