@@ -5,7 +5,7 @@ import {DiamondCutFacet} from "@diamond/facets/DiamondCutFacet.sol";
55import {DiamondLoupeFacet} from "@diamond/facets/DiamondLoupeFacet.sol " ;
66import {OwnableRolesFacet} from "@diamond/facets/OwnableRolesFacet.sol " ;
77import {DiamondInit} from "@diamond/initializers/DiamondInit.sol " ;
8- import {MultiInit } from "@diamond/initializers/MultiInit .sol " ;
8+ import {IDiamondCut } from "@diamond/interfaces/IDiamondCut .sol " ;
99import {UpgradeableBeacon} from "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol " ;
1010import {DeployHostItTicketsHelper} from "@ticket-script/helper/DeployHostItTicketsHelper.sol " ;
1111import {LibAddressesAndFees} from "@ticket-script/helper/LibAddressesAndFees.sol " ;
@@ -21,24 +21,40 @@ import {Script} from "forge-std/Script.sol";
2121contract DeployHostItTicketsTest is Script , DeployHostItTicketsHelper {
2222 function run () public returns (address hostIt_ ) {
2323 vm.startBroadcast ();
24- // Deploy facets
25- address diamondCutFacet = address (new DiamondCutFacet ());
26- address diamondLoupeFacet = address (new DiamondLoupeFacet ());
27- address ownableRolesFacet = address (new OwnableRolesFacet ());
24+ // Facets
25+ address diamondCutFacet = address (new DiamondCutFacet {salt: vm.envBytes32 ("DIAMOND_CUT_SALT " )}());
26+ address diamondLoupeFacet = address (new DiamondLoupeFacet {salt: vm.envBytes32 ("DIAMOND_LOUPE_SALT " )}());
27+ address ownableRolesFacet = address (new OwnableRolesFacet {salt: vm.envBytes32 ("OWNABLE_ROLES_SALT " )}());
28+
29+ // Initializer
30+ address diamondInit = address (new DiamondInit {salt: vm.envBytes32 ("DIAMOND_INIT_SALT " )}());
31+
32+ // Deploy HostItTickets diamond
33+ hostIt_ = address (
34+ new HostItTickets {
35+ salt: vm.envBytes32 ("HOST_IT_SALT " )
36+ }(
37+ _createInitFacetCuts (diamondCutFacet, diamondLoupeFacet, ownableRolesFacet),
38+ diamondInit,
39+ abi.encodeWithSignature ("initDiamond(address) " , _msgSender ())
40+ )
41+ );
42+ vm.stopBroadcast ();
43+ }
44+
45+ function init (address _hostIt ) public {
46+ vm.startBroadcast ();
2847 address factoryFacet = address (new FactoryFacet ());
29- address checkInFacet = address (new CheckInFacet ());
3048 address marketplaceFacet = address (new MarketplaceFacet ());
49+ address checkInFacet = address (new CheckInFacet ());
3150
32- // Deploy initializers
33- address multiInit = address (new MultiInit ());
34- address diamondInit = address (new DiamondInit ());
51+ // Deploy initializer
3552 address hostItInit = address (new HostItInit ());
36-
3753 // Deploy Ticket Impl
3854 address ticketImpl = address (new Ticket ());
3955
4056 // Deploy Ticket Beacon
41- address ticketBeacon = address (new UpgradeableBeacon (ticketImpl, _msgSender () ));
57+ address ticketBeacon = address (new UpgradeableBeacon (ticketImpl, _hostIt ));
4258
4359 // Deploy Ticket Proxy
4460 address ticketProxy = address (new TicketProxy (ticketBeacon));
@@ -47,18 +63,13 @@ contract DeployHostItTicketsTest is Script, DeployHostItTicketsHelper {
4763 (address [] memory addresses , uint8 [] memory feeTypes ) =
4864 LibAddressesAndFees._getAddressesAndFeesByChainId (block .chainid );
4965
50- // Deploy HostItTickets diamond
51- hostIt_ = address (
52- new HostItTickets {
53- salt: vm.envBytes32 ("HOST_IT_SALT " )
54- }(
55- _createFacetCuts (
56- diamondCutFacet, diamondLoupeFacet, ownableRolesFacet, factoryFacet, checkInFacet, marketplaceFacet
57- ),
58- multiInit,
59- _createInitCalldata (diamondInit, hostItInit, ticketProxy, feeTypes, addresses)
60- )
61- );
66+ // Initialize HostItTickets
67+ IDiamondCut (_hostIt)
68+ .diamondCut (
69+ _createHostItFacetCuts (factoryFacet, marketplaceFacet, checkInFacet),
70+ hostItInit,
71+ abi.encodeWithSelector (HostItInit.initHostIt.selector , ticketProxy, feeTypes, addresses)
72+ );
6273 vm.stopBroadcast ();
6374 }
6475}
0 commit comments