|
2 | 2 | pragma solidity 0.8.20; |
3 | 3 |
|
4 | 4 | import { PermitSignature, OnboardingApproval } from "../shared/FreeStructs.sol"; |
| 5 | +import { InvalidERC20Token } from "../shared/CustomErrors.sol"; |
5 | 6 | import { Modifiers } from "../shared/Modifiers.sol"; |
6 | 7 | import { LibTokenizedVaultIO } from "../libs/LibTokenizedVaultIO.sol"; |
7 | 8 | import { LibACL } from "../libs/LibACL.sol"; |
@@ -33,15 +34,16 @@ contract ZapFacet is Modifiers, ReentrancyGuard { |
33 | 34 | PermitSignature calldata _permitSignature, |
34 | 35 | OnboardingApproval calldata _onboardingApproval |
35 | 36 | ) external notLocked nonReentrant { |
36 | | - // Check if it's a supported ERC20 token |
37 | | - require(LibAdmin._isSupportedExternalTokenAddress(_externalTokenAddress), "zapStake: invalid ERC20 token"); |
38 | | - |
39 | | - if (_onboardingApproval.entityId != 0 && LibObject._getParentFromAddress(msg.sender) != _onboardingApproval.entityId) { |
40 | | - LibAdmin._onboardUserViaSignature(_onboardingApproval); |
| 37 | + if (!LibAdmin._isSupportedExternalTokenAddress(_externalTokenAddress)) { |
| 38 | + revert InvalidERC20Token(_externalTokenAddress, "zapStake"); |
41 | 39 | } |
42 | 40 |
|
43 | 41 | bytes32 parentId = LibObject._getParentFromAddress(msg.sender); |
44 | 42 |
|
| 43 | + if (_onboardingApproval.entityId != 0 && parentId != _onboardingApproval.entityId) { |
| 44 | + LibAdmin._onboardUserViaSignature(_onboardingApproval); |
| 45 | + } |
| 46 | + |
45 | 47 | // Use permit to set allowance |
46 | 48 | IERC20(_externalTokenAddress).permit(msg.sender, address(this), _amountToDeposit, _permitSignature.deadline, _permitSignature.v, _permitSignature.r, _permitSignature.s); |
47 | 49 |
|
@@ -74,8 +76,9 @@ contract ZapFacet is Modifiers, ReentrancyGuard { |
74 | 76 | PermitSignature calldata _permitSignature, |
75 | 77 | OnboardingApproval calldata _onboardingApproval |
76 | 78 | ) external notLocked nonReentrant { |
77 | | - // Check if it's a supported ERC20 token |
78 | | - require(LibAdmin._isSupportedExternalTokenAddress(_externalTokenAddress), "zapOrder: invalid ERC20 token"); |
| 79 | + if (!LibAdmin._isSupportedExternalTokenAddress(_externalTokenAddress)) { |
| 80 | + revert InvalidERC20Token(_externalTokenAddress, "zapOrder"); |
| 81 | + } |
79 | 82 |
|
80 | 83 | bytes32 parentId = _onboardingApproval.entityId; |
81 | 84 |
|
|
0 commit comments