通用部署器

通用部署器合约 (UDC) 接口和预设的参考。

核心

IUniversalDeployer

use openzeppelin_utils::interfaces::IUniversalDeployer;

函数

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

通过通用部署器合约部署合约。

事件

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

deployer 通过通用部署器合约部署合约时触发。

预设

UniversalDeployer

use openzeppelin_presets::UniversalDeployer;

标准的通用部署器合约。

0x01b2df6d8861670d4a8ca4670433b2418d78169c2947f46dc614e69f333745c8

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

通过通用部署器合约部署合约。

not_from_zerotrue 时,salt 会与调用者地址进行哈希处理,并将修改后的 salt 传递给内部 deploy_syscall。 这种类型的部署是依赖来源

not_from_zerofalse 时,部署类型是 独立来源

触发一个 ContractDeployed 事件。