It is standard for all external and public functions to be override from an 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;
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) {