// SPDX-License-Identifier: LGPL-3.0-only pragma solidity ^0.8.19; // src/factory/enum/CodeType.sol enum CodeType { CreationCode, RuntimeCode } // src/factory/enum/DeployType.sol enum DeployType { Create3, Create2, Create } // src/factory/enum/ProxyType.sol enum ProxyType { DestinyTempleV7ShadowProxy, DestinyTempleV7BeaconProxy, DestinyTempleV7DiamondProxy, ERC1967UpgradeableBeacon, ERC1967UpgradeableBeaconProxy, ERC1967UniversalUpgradableProxy, ERC1167MinimalProxy, ERC7511MinimalProxy, Contract } // src/factory/interfaces/IDestinyFactory.sol interface IDestinyFactory { event Deployed(address addr); event Nonce(uint256 nonce); event ValidatorChanged(address newValidator); function verifyOwnership(address verifyContract,bytes memory verifyData ) external; function deployAddr(DeployType deployType,ProxyType proxyType,bytes memory params,bytes32 salt,uint256 nonce) external view returns(address creator,address addr); function deploy(DeployType deployType,ProxyType proxyType,address callbackAddr,bytes memory initData,bytes memory params) external payable returns(address addr); function deployCode(ProxyType proxyType,CodeType codeType,bytes memory constructorParametersABI_Encoded) external pure returns(bytes memory code); }