In this case you are tasked with designing and building a simple off-chain system
and the on-chain smart-contract to enable cheap auctions. The goal is to enable
trades between an ERC721 and a ERC20 with a single on-chain transaction.
The auctions should work as follows:
- Owner of the NFT approves all NFT’s to the Marketplace
- Owner of the NFT signs to create an off-chain auction listing with a minimum
price
- Bidder approves ERC20 tokens to Marketplace
- Bidder signs a bid for the auction
- If owner approves the bid, signs it back and retrieve to bidder
- Anyone with both signatures can settle the transaction, the owner takes the
ERC20 whilst the bidder takes the NFT.