40,000 USDC
View results
Submission Details
Severity: gas

It is standard for all external and public functions to be override from an interface

Summary

It is standard for all external and public functions to be override from an interface

Vulnerability Details

This is to ensure the whole API is extracted in a interface

File: /src/Escrow.sol
94: function confirmReceipt() external onlyBuyer inState(State.Created) {
s_state = State.Confirmed;
102: function initiateDispute() external onlyBuyerOrSeller inState(State.Created) {
if (i_arbiter == address(0)) revert Escrow__DisputeRequiresArbiter();
109: function resolveDispute(uint256 buyerAward) external onlyArbiter nonReentrant inState(State.Disputed) {
uint256 tokenBalance = i_tokenContract.balanceOf(address(this));
135: function getPrice() external view returns (uint256) {
return i_price;
139: function getTokenContract() external view returns (IERC20) {
return i_tokenContract;
143: function getBuyer() external view returns (address) {
return i_buyer;
147: function getSeller() external view returns (address) {
return i_seller;
151: function getArbiter() external view returns (address) {
return i_arbiter;
155: function getArbiterFee() external view returns (uint256) {
return i_arbiterFee;
159: function getState() external view returns (State) {
return s_state;

Link to code

File: /src/EscrowFactory.sol
20: function newEscrow(
uint256 price,
IERC20 tokenContract,
address seller,
address arbiter,
uint256 arbiterFee,
bytes32 salt
) external returns (IEscrow) {
56: function computeEscrowAddress(
bytes memory byteCode,
address deployer,
uint256 salt,
uint256 price,
IERC20 tokenContract,
address buyer,
address seller,
address arbiter,
uint256 arbiterFee
) public pure returns (address) {

Link to code

Impact

Informational

Tools Used

Manual

Recommendations

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.