Skip to content

Commit bc6834e

Browse files
authored
fix: linting (#44)
1 parent f67f1f3 commit bc6834e

File tree

4 files changed

+46
-37
lines changed

4 files changed

+46
-37
lines changed

solidity/contracts/XERC20Lockbox.sol

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import {IXERC20} from 'interfaces/IXERC20.sol';
55
import {IERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol';
66
import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';
77
import {SafeCast} from '@openzeppelin/contracts/utils/math/SafeCast.sol';
8-
import {IXERC20Lockbox} from 'interfaces/IXERC20Lockbox.sol';
9-
import {IAllowanceTransfer} from 'permit2/src/interfaces/IAllowanceTransfer.sol';
8+
import {IXERC20Lockbox, IAllowanceTransfer} from 'interfaces/IXERC20Lockbox.sol';
109
import {IPermit2} from 'permit2/src/interfaces/IPermit2.sol';
1110

1211
contract XERC20Lockbox is IXERC20Lockbox {
@@ -79,21 +78,19 @@ contract XERC20Lockbox is IXERC20Lockbox {
7978
*
8079
* @param _amount The amount of tokens to deposit
8180
* @param _owner The owner of the tokens being deposited
81+
* @param _permit The permit data
82+
* @param _signature The signature approving the permit
8283
*/
8384

8485
function depositWithPermitAllowance(
8586
uint256 _amount,
8687
address _owner,
8788
IAllowanceTransfer.PermitSingle calldata _permit,
88-
bytes calldata signature
89+
bytes calldata _signature
8990
) external {
9091
if (IS_NATIVE) revert IXERC20Lockbox_Native();
9192

92-
PERMIT2.permit(
93-
_owner,
94-
_permit,
95-
signature
96-
);
93+
PERMIT2.permit(_owner, _permit, _signature);
9794

9895
PERMIT2.transferFrom(_owner, address(this), _amount.toUint160(), address(ERC20));
9996
XERC20.mint(_owner, _amount);

solidity/interfaces/IXERC20Lockbox.sol

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
// SPDX-License-Identifier: UNLICENSED
22
pragma solidity >=0.8.4 <0.9.0;
33

4+
import {IAllowanceTransfer} from 'permit2/src/interfaces/IAllowanceTransfer.sol';
5+
46
interface IXERC20Lockbox {
57
/**
68
* @notice Emitted when tokens are deposited into the lockbox
@@ -47,4 +49,20 @@ interface IXERC20Lockbox {
4749
*/
4850

4951
function withdraw(uint256 _amount) external;
52+
53+
/**
54+
* @notice Deposit ERC20 tokens into the lockbox using Permit2
55+
*
56+
* @param _amount The amount of tokens to deposit
57+
* @param _owner The owner of the tokens being deposited
58+
* @param _permit The permit data
59+
* @param _signature The signature approving the permit
60+
*/
61+
62+
function depositWithPermitAllowance(
63+
uint256 _amount,
64+
address _owner,
65+
IAllowanceTransfer.PermitSingle calldata _permit,
66+
bytes calldata _signature
67+
) external;
5068
}

solidity/test/e2e/XERC20Lockbox.sol

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ contract E2ELockbox is CommonE2EBase, PermitSignature {
3131
address _permit2 = address(_lockbox.PERMIT2());
3232
bytes32 _domainSeparator = IEIP712(_permit2).DOMAIN_SEPARATOR();
3333
uint256 _amount = 100 ether;
34-
uint48 _expiration = uint48(2**48 - 1);
34+
uint48 _expiration = uint48(2 ** 48 - 1);
3535

3636
deal(address(_dai), _user, _amount);
3737
vm.startPrank(_user);
3838
_dai.approve(_permit2, _amount);
3939
vm.stopPrank();
4040

41-
IAllowanceTransfer.PermitSingle memory permit = IAllowanceTransfer.PermitSingle({
41+
IAllowanceTransfer.PermitSingle memory _permit = IAllowanceTransfer.PermitSingle({
4242
details: IAllowanceTransfer.PermitDetails({
4343
token: address(_dai),
4444
amount: uint160(_amount),
@@ -49,10 +49,10 @@ contract E2ELockbox is CommonE2EBase, PermitSignature {
4949
sigDeadline: _expiration
5050
});
5151

52-
bytes memory signature = getPermitSignature(permit, _userPrivateKey, _domainSeparator);
52+
bytes memory _signature = getPermitSignature(_permit, _userPrivateKey, _domainSeparator);
5353

5454
vm.startPrank(_multicall);
55-
_lockbox.depositWithPermitAllowance(_amount, _user, permit, signature);
55+
_lockbox.depositWithPermitAllowance(_amount, _user, _permit, _signature);
5656
vm.stopPrank();
5757

5858
assertEq(XERC20(_xerc20).balanceOf(_user), _amount);

solidity/test/unit/XERC20Lockbox.t.sol

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -54,49 +54,43 @@ contract UnitDeposit is Base {
5454
}
5555

5656
function testDepositWithPermitAllowance(uint256 _amount) public {
57-
uint48 expiration = uint48(2**48 - 1);
57+
uint48 _expiration = uint48(2 ** 48 - 1);
5858

5959
vm.assume(_amount > 0 && _amount < type(uint160).max);
6060
vm.deal(_owner, _amount);
6161

62-
IAllowanceTransfer.PermitSingle memory permit = IAllowanceTransfer.PermitSingle({
62+
IAllowanceTransfer.PermitSingle memory _permit = IAllowanceTransfer.PermitSingle({
6363
details: IAllowanceTransfer.PermitDetails({
6464
token: address(_erc20),
6565
amount: uint160(_amount),
66-
expiration: expiration,
66+
expiration: _expiration,
6767
nonce: 0
6868
}),
6969
spender: address(_lockbox),
70-
sigDeadline: expiration
70+
sigDeadline: _expiration
7171
});
7272

73-
bytes4 permitSelector = bytes4(keccak256("permit(address,((address,uint160,uint48,uint48),address,uint256),bytes)"));
74-
bytes4 transferFromSelector = bytes4(keccak256(bytes("transferFrom(address,address,uint160,address)")));
73+
bytes4 _permitSelector =
74+
bytes4(keccak256('permit(address,((address,uint160,uint48,uint48),address,uint256),bytes)'));
75+
bytes4 _transferFromSelector = bytes4(keccak256(bytes('transferFrom(address,address,uint160,address)')));
7576

77+
vm.mockCall(address(_permit2), abi.encodeWithSelector(_permitSelector, _owner, _permit, bytes('')), abi.encode());
7678
vm.mockCall(
7779
address(_permit2),
78-
abi.encodeWithSelector(permitSelector, _owner, permit, bytes("")),
79-
abi.encode()
80-
);
81-
vm.mockCall(
82-
address(_permit2),
83-
abi.encodeWithSelector(transferFromSelector, _owner, address(_lockbox), _amount, address(_erc20)),
80+
abi.encodeWithSelector(_transferFromSelector, _owner, address(_lockbox), _amount, address(_erc20)),
8481
abi.encode()
8582
);
8683
vm.mockCall(address(_xerc20), abi.encodeWithSelector(IXERC20.mint.selector, _owner, _amount), abi.encode(true));
8784

85+
vm.expectCall(address(_permit2), abi.encodeWithSelector(_permitSelector, _owner, _permit, bytes('')));
8886
vm.expectCall(
8987
address(_permit2),
90-
abi.encodeWithSelector(permitSelector, _owner, permit, bytes(""))
91-
);
92-
vm.expectCall(
93-
address(_permit2),
94-
abi.encodeWithSelector(transferFromSelector, _owner, address(_lockbox), _amount, address(_erc20))
88+
abi.encodeWithSelector(_transferFromSelector, _owner, address(_lockbox), _amount, address(_erc20))
9589
);
9690
vm.expectCall(address(_xerc20), abi.encodeCall(XERC20.mint, (_owner, _amount)));
9791

9892
vm.prank(_owner);
99-
_lockbox.depositWithPermitAllowance(_amount, _owner, permit, bytes(""));
93+
_lockbox.depositWithPermitAllowance(_amount, _owner, _permit, bytes(''));
10094
}
10195

10296
function testDepositEmitsEvent(uint256 _amount) public {
@@ -135,20 +129,20 @@ contract UnitDeposit is Base {
135129
vm.deal(_owner, _amount);
136130
vm.prank(_owner);
137131
vm.expectRevert(IXERC20Lockbox.IXERC20Lockbox_Native.selector);
138-
139-
uint48 expiration = uint48(2**48 - 1);
140-
IAllowanceTransfer.PermitSingle memory permit = IAllowanceTransfer.PermitSingle({
132+
133+
uint48 _expiration = uint48(2 ** 48 - 1);
134+
IAllowanceTransfer.PermitSingle memory _permit = IAllowanceTransfer.PermitSingle({
141135
details: IAllowanceTransfer.PermitDetails({
142136
token: address(_erc20),
143137
amount: uint160(_amount),
144-
expiration: expiration,
138+
expiration: _expiration,
145139
nonce: 0
146140
}),
147141
spender: address(_lockbox),
148-
sigDeadline: expiration
149-
});
142+
sigDeadline: _expiration
143+
});
150144

151-
_nativeLockbox.depositWithPermitAllowance(_amount, _owner, permit, bytes(""));
145+
_nativeLockbox.depositWithPermitAllowance(_amount, _owner, _permit, bytes(''));
152146
}
153147

154148
function testNativeDeposit(uint256 _amount) public {

0 commit comments

Comments
 (0)