EscrowLayer is an upgradeable escrow contract built for ERC‑20 tokens that implement EIP‑2612. Deals are funded via a single createDeal call that first invokes the token’s permit function and then transfers tokens into escrow. The contract calculates platform and service fees, supports optional time‑locked releases or immediate completion, and allows dispute resolution through a designated proxy. Fee balances can be withdrawn by the owner. Experimental cross‑bridge files exist in the repository but are not part of the deployed logic yet.
Github Repo: https://github.com/Escrow-Layer/Escrow-Layer-Contracts.git
| Path | Description |
|---|---|
contracts/ |
Solidity sources. Includes Escrow.sol, EscrowStruct.sol, TestToken.sol, plus commented bridge experiments. |
scripts/ |
Hardhat deployment and upgrade scripts. |
test/ |
Default Hardhat test scaffold (Lock.ts). |
contracts/bridge/ |
Prototype bridging contracts (CrossBridgeManger.sol, EscrowWithCrossBridge.sol) for future multi-bridge support. |
README.md |
High‑level project description and usage instructions. |
Base contract that centralizes storage, data types, and shared modifiers for the Escrow system.
TransferOwnership(address oldOwner, address newOwner) – fired when control is transferred.DealCreated(deal _deal, address proxy) – a new deal has been registered by its designated proxy.DealCompleted(deal _deal, address caller, address receiver) – funds released to the receiver.DisputeResolved(deal _deal, address resolver, address fundReceiver) – dispute handled and funds sent.Withdraw(address caller, address token, uint amount) – owner removed accumulated fees.FeeUpdated(address caller, uint oldFee, uint newFee) – service‑fee percentage changed.address public owner – contract administrator.uint public feePercentage – service‑fee numerator (e.g., 5 ⇒ 0.5 % when percentageBuff is 1000).uint public percentageBuff – percentage precision divisor (default 1000).