22// SPDX-FileCopyrightText: Copyright (c) 2020 Rain Open Source Software Ltd
33pragma solidity = 0.8.25 ;
44
5- import {Test} from "forge-std/Test.sol " ;
5+ import {Test, Vm } from "forge-std/Test.sol " ;
66
77import {
88 ERC20PriceOracleReceiptVaultCloneDeployer ,
@@ -34,7 +34,11 @@ contract ERC20PriceOracleReceiptVaultCloneDeployerNewERC20PriceOracleReceiptVaul
3434 deployer.newERC20PriceOracleReceiptVault (config);
3535 }
3636
37- function testNewERC20PriceOracleReceiptVaultSuccess (ERC20PriceOracleReceiptVaultConfigV2 memory config ) external {
37+ function testNewERC20PriceOracleReceiptVaultSuccess (
38+ address alice ,
39+ ERC20PriceOracleReceiptVaultConfigV2 memory config
40+ ) external {
41+ vm.assume (alice.code.length == 0 );
3842 vm.assume (config.receiptVaultConfig.receipt == address (0 ));
3943 ReceiptContract receiptImplementation = new ReceiptContract ();
4044 ERC20PriceOracleReceiptVault erc20PriceOracleReceiptVaultImplementation = new ERC20PriceOracleReceiptVault ();
@@ -44,7 +48,29 @@ contract ERC20PriceOracleReceiptVaultCloneDeployerNewERC20PriceOracleReceiptVaul
4448 erc20PriceOracleReceiptVaultImplementation: address (erc20PriceOracleReceiptVaultImplementation)
4549 })
4650 );
51+ vm.startPrank (alice);
52+ vm.recordLogs ();
4753 ERC20PriceOracleReceiptVault vault = deployer.newERC20PriceOracleReceiptVault (config);
54+ Vm.Log[] memory logs = vm.getRecordedLogs ();
55+ vm.stopPrank ();
56+
57+ bool eventFound = false ;
58+ bytes32 eventTopic = keccak256 ("ERC20PriceOracleReceiptVaultCloneDeployerDeployment(address,address,address) " );
59+ address eventSender;
60+ address eventVault;
61+ address eventReceipt;
62+ for (uint256 i = 0 ; i < logs.length ; i++ ) {
63+ if (logs[i].topics[0 ] == eventTopic) {
64+ (eventSender, eventVault, eventReceipt) = abi.decode (logs[i].data, (address , address , address ));
65+ eventFound = true ;
66+ break ;
67+ }
68+ }
69+ assertTrue (eventFound, "ERC20PriceOracleReceiptVaultCloneDeployerDeployment event log not found " );
70+ assertEq (eventSender, alice);
71+ assertEq (eventVault, address (vault));
72+ assertEq (eventReceipt, address (vault.receipt ()));
73+
4874 assert (address (vault) != address (0 ));
4975 assert (vault.asset () == config.receiptVaultConfig.asset);
5076 }
0 commit comments