Skip to content

Commit ce2b317

Browse files
authored
Merge pull request #427 from rsksmart/feature/FLY-2212
Feature/fly 2212
2 parents 922203d + cd14ee8 commit ce2b317

File tree

4 files changed

+44
-4
lines changed

4 files changed

+44
-4
lines changed

src/FlyoverDiscovery.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ contract FlyoverDiscovery is
204204
address providerAddress,
205205
uint256 collateralAmount
206206
) private view {
207-
if (providerAddress != msg.sender || providerAddress.code.length != 0) revert NotEOA(providerAddress);
207+
if (providerAddress != msg.sender || msg.sender != tx.origin) revert NotEOA(providerAddress);
208208

209209
if (
210210
bytes(name).length < 1 ||

src/interfaces/IFlyoverDiscovery.sol

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ interface IFlyoverDiscovery is IPausable {
1717
error InsufficientCollateral(uint amount);
1818

1919
/// @notice Registers the caller as a Liquidity Provider
20-
/// @dev Reverts if caller is not an EOA, already resigned, provides invalid data, invalid type, or lacks collateral
20+
/// @dev Reverts if caller is not an EOA, already resigned, provides invalid data,
21+
/// invalid type, or lacks collateral
2122
/// @param name Human-readable LP name
2223
/// @param apiBaseUrl Base URL of the LP public API
2324
/// @param status Initial status flag (enabled/disabled)

src/libraries/SignatureValidator.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
// SPDX-License-Identifier: MIT
22
pragma solidity 0.8.25;
33

4-
import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
4+
import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
55

66
library SignatureValidator {
77

88
using ECDSA for bytes32;
9-
109
error IncorrectSignature(address expectedAddress, bytes32 usedHash, bytes signature);
1110
error SignatureCheckError(uint8 errorType, bytes32 errorArg);
1211
error ZeroAddress();
@@ -34,4 +33,5 @@ library SignatureValidator {
3433
}
3534
return recovered == addr;
3635
}
36+
3737
}

test/discovery/NotEoa.t.sol

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ contract NotEoaTest is DiscoveryTestBase {
1515

1616
function test_Register_RevertsWhenContractCallsRegister() public {
1717
RegisterCaller caller = new RegisterCaller();
18+
vm.deal(address(caller), 100 ether);
1819

1920
vm.expectRevert(
2021
abi.encodeWithSelector(
@@ -30,4 +31,42 @@ contract NotEoaTest is DiscoveryTestBase {
3031
Flyover.ProviderType.PegIn
3132
);
3233
}
34+
35+
function test_Register_RevertsWhenContractCallsRegisterWithLowCollateral()
36+
public
37+
{
38+
RegisterCaller caller = new RegisterCaller();
39+
vm.deal(address(caller), 100 ether);
40+
41+
vm.expectRevert(
42+
abi.encodeWithSelector(
43+
IFlyoverDiscovery.NotEOA.selector,
44+
address(caller)
45+
)
46+
);
47+
caller.callRegister{value: MIN_COLLATERAL - 1}(
48+
address(discovery),
49+
"N",
50+
"U",
51+
true,
52+
Flyover.ProviderType.PegIn
53+
);
54+
}
55+
56+
function test_Register_RevertsWhenMsgSenderDiffersFromTxOrigin() public {
57+
address sender = makeAddr("sender");
58+
address origin = makeAddr("origin");
59+
vm.deal(sender, 100 ether);
60+
61+
vm.prank(sender, origin);
62+
vm.expectRevert(
63+
abi.encodeWithSelector(IFlyoverDiscovery.NotEOA.selector, sender)
64+
);
65+
discovery.register{value: MIN_COLLATERAL}(
66+
"N",
67+
"U",
68+
true,
69+
Flyover.ProviderType.PegIn
70+
);
71+
}
3372
}

0 commit comments

Comments
 (0)